python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法

2023-05-22,,

本篇文章给大家分享的是有关python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

import sysfrom PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *class Demo(QWidget):  def __init__(self):    super(Demo, self).__init__()    # 设置主界面    # 设置控件    # 设置布局    # 设置信号def main(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(int width) # 设置窗体宽度

self.setFixedHeight(int height) # 设置窗体高度

self.setFixedSize(int width, int height) # 设置窗体大小

self.setGeometry(int x, int y, int width, int height) # 设置窗口位置

self.frameGeometry() # 获取窗口的大小和位置

self.move(int x, int y) # 设置窗口的位置

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、各种类型的框

QMessageBox.information消息框QMessageBox.question问答框QMessageBox.warning警告框QMessageBox.critical错误框QMessageBox.about关于框

3、与消息框进行交互

choice = QMessageBox.question(self, 'Title', 'Content', QMessageBox.Yes | QMessageBox.No)if choice == QMessageBox.Yes:  passelif choice == QMessageBox.No:pass

2、文本编辑框和文本浏览框

实例化控件

self.text_edit = QTextEdit(self) # 文本编辑框

self.text_browser = QTextBrowser(self) # 文本浏览框

设置信号

QTextEdittextChanged文本发生改变

控件方法

QTextEditsetText(‘Content')设置文本QTextEdittoPlainText()获取文本QTextEditsetTextColor(color)设置文本颜色QTextEditsetFont(font)设置字体

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('Checkbox 1', self) # 复选框的三种状态:全选中、半选中和无选中

设置信号

通用Pressed当鼠标指针在按钮上并按下左键时触发该信号通用Released当鼠标左键被释放时触发该信号通用Clicked当鼠标左键被按下然后释放时,或者快捷键被释放时触发该信号通用Toggled当按钮的标记状态发生改变时触发该信号QCheckBoxstateChanged复选框状态发生改变

控件方法

通用isDown()提示按钮是否已按下通用isChecked()提示按钮是否已经标记通用isEnable()提示按钮是否可以被用户点击通用isCheckAble()提示按钮是否为可标记的通用setAutoRepeat()设置按钮是否在用户长按时可以自动重复执行通用setShortcut(‘Ctrl+D')设置按钮快捷键QPushButtonsetCheckable(True)设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态QPushButtontoggle()在按钮状态之间进行切换QPushButtonsetIcon(QIcon(‘button.png'))设置图标QPushButtonsetEnabled()设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号QPushButtonisChecked()判断按钮是否为标记状态,若是则返回True,不是则返回FalseQPushButtonsetDefault()设置按钮的默认状态QPushButtonsetText(‘text')设置按钮的显示文本QPushButtontext()返回按钮的显示文本QToolButtonsetArrowType(参数1)设定button上显示的箭头类型QToolButtonsetToolButtonStyle(参数2)设定button文本和图标显示的样式QRadioButtonsetChecked(True)单选按钮设为选中状态QCheckBoxsetChecked(True)将复选框设为选中或无选中状态QCheckBoxsetCheckState(Qt.Checked)选中状态Qt.Checked, 无选中状态Qt.Unchecked和半选中状态Qt.PartiallyCheckedQCheckBoxsetTristate(True)让一个复选框拥有三种状态QCheckBoxsetCheckState(Qt.PartiallyChecked)让一个复选框拥有三种状态QCheckBoxcheckState()获取当前复选框的状态,返回值为int类型,0为无选中状态,1为半选中状态,2为选中状态

Qt.NoArrow无箭头Qt.UpArrow向上的箭头Qt.DownArrow向下的箭头Qt.LeftArrow向左的箭头Qt.RightArrow向右的箭头

Qt.ToolButtonIconOnly只显示图标Qt.ToolButtonTextOnly只显示文本Qt.ToolButtonTextBesideIcon文本在图标下面Qt.ToolButtonTextUnderIcon文本在图标上面Qt.ToolButtonFollowStyle未知…

4、标签

实例化控件

self.label = QLabel(self) 

控件方法

QLabelsetPixmap(QPixmap(‘on.png'))给标签设置图片QLabelsetAlignment(Qt.AlignCenter)设置标签对齐方式

5、单行文本框

实例化控件

self.lineedit = QLineEdit(self)

控件方法

QLineEditsetFont(combobox.currentFont())设置字体QLineEditsetPlaceholderText()设置文本框显示文字QLineEditsetMaxLength()设置文本框所允许输入的最大字符数QLineEditsetReadOnly()设置文本为只读QLineEditsetText()设置文本框的内容QLineEdittext()返回文本框的内容QLineEditsetDragEnable()设置文本框是否接受拖动QLineEditselectAll()全选QLineEditsetFocus()得到焦点QLineEditsetAlignment(参数1)按固定值方式对齐文本QLineEditsetEchoMode(参数2)设置文本框的显示格式QLineEditsetValidator(参数3)设置文本框的验证器(验证规则),将限制任意可能输入的文本QLineEditsetInputMask(参数4)设置掩码

Qt.AlignLeft水平方向靠左对齐Qt.AlignRight水平方向靠右对齐Qt.AlignCenter水平方向居中对齐Qt.AlignJustify水平方向调整间距两端对齐Qt.AlignTop垂直方向靠上对齐Qt.AlignBottom垂直方向靠下对齐Qt.AlignVCenter垂直方向居中对齐

QLineEdit.Normal正常显示所输入的字符,此为默认选项QLineEdit.NoEcho不显示任何输入的字符,常用于密码类型的输入,且长度保密QLineEdit.Password显示与平台相关的密码掩饰字符,而不是实际输入的字符QLineEdit.PasswordEchoOnEdit在编辑时显示字符,负责显示密码类型的输入

QIntValidator限制输入整数QDoubleValidator限制输入浮点数QRegexpValidator检查输入是否符合正则表达式

000.000.000.000;_ip地址,空白字符是‘_'HH:HH:HH:HH:HH:HH;MAC地址0000-00-00日期,空白字符是空格>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#许可证号,空白字符是‘_',所有字母都转换为大写

设置信号

QLineEditselectionChanged只要选择改变了,这个信号就会发射QLineEdittextChanged当修改文本内容时,这个信号就会发射QLineEditeditingFinished当编辑文本结束时,这个信号就会发射

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)

设置信号

QComboBoxcurrentIndexChanged序号发生变化QComboBoxcurrentTextChanged文本发生变化QSpinBoxvalueChanged数字发生变化

控件方法

QComboBoxaddItem(self.choice)添加一个选项QComboBoxaddItems(self.choice_list)添加多个选项QComboBoxcurrentIndex()获取当前文本序号QComboBoxcurrentText()获取当前文本QComboBoxcurrentFont()获取当前字体QDoubleSpinBoxsetDecimals(int)设置小数位数QSpinBoxsetRange(-99, 99)设置范围QSpinBoxsetSingleStep(1)设置步长,即每次点击递增或递减多少值QSpinBoxsetValue(66)设置初始显示值QSpinBoxvalue()获取值QSpinBoxsetValue(value)设置调节框的值

7、滑动条和旋钮

实例化控件

self.slider_1 = QSlider(Qt.Horizontal, self) # 水平滑动条

self.slider_2 = QSlider(Qt.Vertical, self) # 垂直滑动条

self.dial = QDial(self) # 旋钮

设置信号

QSlidervalueChanged数值发生改变QDialvalueChanged改变表盘数值

控件方法

QSlidersetRange(0, 100)设置滑动条的范围QSlidersetMinimum(0)设置最小值QSlidersetMaximum(100)设置最大值QSlidervalue()获取值QSlidersetValue(value)设置值QDialsetFixedSize(100, 100)固定旋钮的大小QDialsetRange(0, 100)设置表盘数值范围QDialsetMinimum(0)设置最小值QDialsetMaximum(100)设置最大值QDialsetNotchesVisible(True)显示刻度

8、定时器和进度条

实例化控件

QTimertimeouttimer.start()结束时触发

控件方法

QTimerisActive()判断定时器是否处于激活状态QTimerstart(100)启动计时器持续100毫秒QTimerstop()停止计时器QTimersetSingleShot(True)触发timeout信号后只调用一次update_func()QProgressBarsetMinimum(0)设置最小值QProgressBarsetMaximum(100)设置最大值QProgressBarsetRange(0, 100)设置范围QProgressBarsetValue(value)设置进度条当前值QProgressBarreset()重置进度条的值

9、数字显示屏

实例化控件

self.lcd = QLCDNumber(self) # 数字显示屏

控件方法

QLCDNumbersetDigitCount(10)设置显示多少位数字QLCDNumberdisplay(1234567890)显示数字QLCDNumbersetSegmentStyle(参数1)设置显示屏数字样式QLCDNumbersetSmallDecimalPoint(True)设置小数点的显示方式,若为True,则占位,若为False,则会单独占位QLCDNumberdisplay(0.123456789)显示数字QLCDNumberdisplay(‘HELLO')显示字母QLCDNumbersetMode(参数2)更改数字显示方式

QLCDNumber.Outline0让内容浮显,其颜色同显示屏背景颜色相同QLCDNumber.Filled1让内容浮显,颜色同窗口标题颜色相同QLCDNumber.Flat2让内容扁平化显示,颜色同窗口标题颜色相同

QLCDNumber.Hex0十六进制QLCDNumber.Dec1十进制QLCDNumber.Oct2八进制QLCDNumber.Bin3二进制

三、设置布局

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变量中)if color.isValid(): # 判断color是否有效self.text_edit.setTextColor(color)font, ok = QFontDialog.getFont() # 字体对话框if ok:self.text_edit.setFont(font)

2、输入对话框

getItem()从下拉框中获取选项输入getInt()获取整型值输入getDouble()获取浮点型值输入getText()获取字符串输入getMultiLineText()获取多行字符串输入

实例:

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', './', 'Excel Files (*.xlsx;*.xls);;All Files (*)') # 选择保存文件

path, _ = QFileDialog.getOpenFileName(self, 'title', './', 'Excel Files (*.xlsx;*.xls);;All Files (*)') # 选择文件

path, _ = QFileDialog.getOpenFileNames(self, 'title', './', 'Excel Files (*.xlsx;*.xls);;All Files (*)') # 选择多个文件

path, _ = QFileDialog.getExistingDirectory(self, 'title', './') # 选择文件夹

参数:指定父类,文件对话框的标题,对话框打开时显示的路径,文件扩展名过滤器

其中设置文件扩展名过滤,用双分号间隔。

'All Files (*);;PDF Files (*.pdf);;Text Files (*.txt)'

五、界面关闭事件

def closeEvent(self, QCloseEvent): # 关闭事件函数if not self.saved: # 如果未保存choice = QMessageBox.question(self, '', 'Do you want to save the text?', QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)if choice == QMessageBox.Yes: # 如果需要继续保存self.saved_func()# 调用函数进行保存QCloseEvent.accept()# 接受关闭事件elif choice == QMessageBox.No: # 如果不需要继续保存QCloseEvent.accept()# 接受关闭事件else:  QCloseEvent.ignore()# 忽略关闭事件

更多关于python图形开发GUI库pyqt5的使用方法请查看下面的相关链接

以上就上有关python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法的全部内容,本站全面介绍编程技术、操作系统、数据库、web前端技术等内容。

类型 名称
控件类型 信号 描述
控件类型 方法 描述
控件类型 信号 描述
控件类型 方法 描述
参数1 箭头属性
参数2 样式
控件类型 方法 描述
控件类型 方法 描述
参数1 功能
参数2 功能
参数3 功能
参数4 功能
控件类型 信号 描述
控件类型 信号 描述
控件类型 方法 描述
控件类型 信号 描述
控件类型 方法 描述
控件类型 信号 描述
控件类型 方法 描述
控件类型 方法 描述
参数1 描述
参数2 描述
方法 用法

以上就是python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注本站行业资讯频道。

《python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法.doc》

下载本文的Word格式文档,以方便收藏与打印。