python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
本文主要列出来python图形开发GUI库pyqt5的窗体,控件属性与方法如果你想看看python图形开发GUI库pyqt5的基础使用方法可以查看我们的另一篇文章python图形开发GUI库pyqt5的基本使用方法详解
基本框架
importsys fromPyQt5.QtGuiimport* fromPyQt5.QtCoreimport* fromPyQt5.QtWidgetsimport* classDemo(QWidget): def__init__(self): super(Demo,self).__init__() #设置主界面 #设置控件 #设置布局 #设置信号 defmain(self): #槽函数 if__name__=='__main__': app=QApplication(sys.argv) demo=Demo() demo.show() sys.exit(app.exec_())
程序启动画面
if__name__=='__main__': app=QApplication(sys.argv)#原有 splash=QSplashScreen() splash.setPixmap(QPixmap('images/splash.jpg')) splash.show() splash.showMessage('string',Qt.AlignBottom|Qt.AlignCenter,Qt.white) demo=Demo()#原有 demo.show()#原有 splash.finish(demo) sys.exit(app.exec_())#原有
一、设置主界面
self.setWindowTitle('title')#设置窗体名称
self.setWindowIcon('path')#设置窗体图标
self.resize(300,250)#更改窗体大小
self.size()#获取窗体大小
self.width()#获取窗体宽度
self.height()#获取窗体高度
self.setFixedWidth(intwidth)#设置窗体宽度
self.setFixedHeight(intheight)#设置窗体高度
self.setFixedSize(intwidth,intheight)#设置窗体大小
self.setGeometry(intx,inty,intwidth,intheight)#设置窗口位置
self.frameGeometry()#获取窗口的大小和位置
self.move(intx,inty)#设置窗口的位置
self.pos()#获取窗口左上角坐标
self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)#禁止最大化按钮
self.setFixedSize(self.width(),self.height())#禁止拉伸窗口大小
二、设置控件
1、QMessageBox消息框
1、基本格式
QMessageBox.information(QWidget,‘Title','Content‘,buttons)
第一个参数填self,表示该信息框属于我们这里的Demo窗口;第二个参数类型为字符串,填入的是该信息框的标题;第三个参数类型也是字符串,填入的是信息框的提示内容;最后个参数为信息框上要添加的按钮。多个按钮之间用|来连接,常见的按钮种类有以下几种:
QMessageBox.Ok
QMessageBox.Yes
QMessageBox.No
QMessageBox.Close
QMessageBox.Cancel
QMessage.Open
QMessage.Save
2、各种类型的框
3、与消息框进行交互
choice=QMessageBox.question(self,'Title','Content',QMessageBox.Yes|QMessageBox.No) ifchoice==QMessageBox.Yes: pass elifchoice==QMessageBox.No: pass
2、文本编辑框和文本浏览框
实例化控件
self.text_edit=QTextEdit(self)#文本编辑框
self.text_browser=QTextBrowser(self)#文本浏览框
设置信号
控件方法
3、各种按钮
QPushButton,QToolButton,QRadioButton和QCheckBox均继承自QAbstractButton类
实例化控件
self.test_button=QPushButton('Test',self)#实例化按钮
self.test_button=QPushButton('&Download',self)#实例化按钮并设置快捷键为Alt+D
self.test_button=QToolButton(self)#工具按钮(初始不能传入文本)
self.on_button=QRadioButton('on',self)#单选按钮
self.checkbox1=QCheckBox('Checkbox1',self)#复选框的三种状态:全选中、半选中和无选中
设置信号
控件方法
4、标签
实例化控件
self.label=QLabel(self)
控件方法
5、单行文本框
实例化控件
self.lineedit=QLineEdit(self)
控件方法
设置信号
6、下拉选择框和数字调节框
实例化控件
self.combobox_1=QComboBox(self)#普通下拉框(无内容)
self.combobox_2=QFontComboBox(self)#字体下拉框(有字体选择)
self.spinbox=QSpinBox(self)#数字调节框(默认范围0-99)
self.doublespinbox=QDoubleSpinBox(self)#浮点数字调节框(默认范围0.00-99.99)
设置信号
控件方法
7、滑动条和旋钮
实例化控件
self.slider_1=QSlider(Qt.Horizontal,self)#水平滑动条
self.slider_2=QSlider(Qt.Vertical,self)#垂直滑动条
self.dial=QDial(self)#旋钮
设置信号
控件方法
8、定时器和进度条
实例化控件
控件方法
9、数字显示屏
实例化控件
self.lcd=QLCDNumber(self)#数字显示屏
控件方法
三、设置布局
1、实例化布局
v_layout=QVBoxLayout()#垂直布局
h_layout=QHBoxLayout()#水平布局
form_layout=QFormLayout()#表单布局
grid_layout=QGridLayout()#网格布局
2、给布局添加占位符|控件|布局
self.label.setAlignment(Qt.AlignCenter)#设置居中方式
h_layout.addStretch(1)#设置占位符
v_layout.addWidget(self.user_label)#垂直布局添加控件
h_layout.addWidget(self.user_line) #水平布局添加控件
all_v_layout.addLayout(v_layout)#垂直布局添加垂直布局
all_h_layout.addLayout(h_layout)#水平布局添加水平布局
form_layout.addRow(self.user_label,self.user_line)#表单布局添加控件
grid_layout.addWidget(self.user_label,0,0,1,1)#网格布局添加控件
grid_layout.addWidget(self.user_label,0,0)#默认是1行1列
QGridLayout的addWidget()方法遵循如下语法形式:
addWidget(widget,row,column,rowSpan,columnSpan)
widget就是要添加的控件;row为第几行,0代表第一行;column为第几列,0代表第一列;rowSpan表示要让这个控件去占用几行(默认一行);columnSpan表示要让这个控件去占用几列(默认一列)。
3、设为整个窗口的最终布局方式
self.setLayout(all_h_layout)
四、各种对话框
1、颜色对话框和字体对话框
color=QColorDialog.getColor()#颜色对话框(十六进制的值会保存在color变量中) ifcolor.isValid():#判断color是否有效 self.text_edit.setTextColor(color) font,ok=QFontDialog.getFont()#字体对话框 ifok: self.text_edit.setFont(font)
2、输入对话框
实例:
content,ok=QInputDialog.getText(self,'title','content')
content,ok=QInputDialog.getInt(self,'title','content')
content,ok=QInputDialog.getDouble(self,'title','content')
content,ok=QInputDialog.getMultiLineText(self,'title','content')
Item,ok=QInputDialog.getItem(self,'title','content',list,0,False)
getItem(parent,str,str,iterable,int,bool)方法需要多设置几个参数,前三个与getText()相同,第四个参数为要加入的选项内容,第五个参数为最初显示的选项,最后一个参数是选项内容是否可编辑。
3、文件对话框
path,_=QFileDialog.getSaveFileName(self,'title','./','ExcelFiles(*.xlsx;*.xls);;AllFiles(*)')#选择保存文件
path,_=QFileDialog.getOpenFileName(self,'title','./','ExcelFiles(*.xlsx;*.xls);;AllFiles(*)')#选择文件
path,_=QFileDialog.getOpenFileNames(self,'title','./','ExcelFiles(*.xlsx;*.xls);;AllFiles(*)')#选择多个文件
path,_=QFileDialog.getExistingDirectory(self,'title','./')#选择文件夹
参数:指定父类,文件对话框的标题,对话框打开时显示的路径,文件扩展名过滤器
其中设置文件扩展名过滤,用双分号间隔。
'AllFiles(*);;PDFFiles(*.pdf);;TextFiles(*.txt)'
五、界面关闭事件
defcloseEvent(self,QCloseEvent):#关闭事件函数 ifnotself.saved:#如果未保存 choice=QMessageBox.question(self,'','Doyouwanttosavethetext?',QMessageBox.Yes|QMessageBox.No|QMessageBox.Cancel) ifchoice==QMessageBox.Yes:#如果需要继续保存 self.saved_func() #调用函数进行保存 QCloseEvent.accept() #接受关闭事件 elifchoice==QMessageBox.No:#如果不需要继续保存 QCloseEvent.accept() #接受关闭事件 else: QCloseEvent.ignore() #忽略关闭事件
更多关于python图形开发GUI库pyqt5的使用方法请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。