本篇文章给大家分享的是有关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.information(QWidget, ‘Title', 'Content‘, buttons)
第一个参数填self,表示该信息框属于我们这里的Demo窗口;第二个参数类型为字符串,填入的是该信息框的标题;第三个参数类型也是字符串,填入的是信息框的提示内容;最后个参数为信息框上要添加的按钮。多个按钮之间用 | 来连接,常见的按钮种类有以下几种:
QMessageBox.Ok
QMessageBox.Yes
QMessageBox.No
QMessageBox.Close
QMessageBox.Cancel
QMessage.Open
QMessage.Save
QMessageBox.information消息框QMessageBox.question问答框QMessageBox.warning警告框QMessageBox.critical错误框QMessageBox.about关于框
choice = QMessageBox.question(self, 'Title', 'Content', QMessageBox.Yes | QMessageBox.No)if choice == QMessageBox.Yes: passelif choice == QMessageBox.No:pass
实例化控件
self.text_edit = QTextEdit(self) # 文本编辑框
self.text_browser = QTextBrowser(self) # 文本浏览框
设置信号
QTextEdittextChanged文本发生改变
控件方法
QTextEditsetText(‘Content')设置文本QTextEdittoPlainText()获取文本QTextEditsetTextColor(color)设置文本颜色QTextEditsetFont(font)设置字体
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未知…
实例化控件
self.label = QLabel(self)
控件方法
QLabelsetPixmap(QPixmap(‘on.png'))给标签设置图片QLabelsetAlignment(Qt.AlignCenter)设置标签对齐方式
实例化控件
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当编辑文本结束时,这个信号就会发射
实例化控件
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)设置调节框的值
实例化控件
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)显示刻度
实例化控件
QTimertimeouttimer.start()结束时触发
控件方法
QTimerisActive()判断定时器是否处于激活状态QTimerstart(100)启动计时器持续100毫秒QTimerstop()停止计时器QTimersetSingleShot(True)触发timeout信号后只调用一次update_func()QProgressBarsetMinimum(0)设置最小值QProgressBarsetMaximum(100)设置最大值QProgressBarsetRange(0, 100)设置范围QProgressBarsetValue(value)设置进度条当前值QProgressBarreset()重置进度条的值
实例化控件
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二进制
v_layout = QVBoxLayout() # 垂直布局
h_layout = QHBoxLayout() # 水平布局
form_layout = QFormLayout() # 表单布局
grid_layout = QGridLayout() # 网格布局
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表示要让这个控件去占用几列(默认一列)。
self.setLayout(all_h_layout)
color = QColorDialog.getColor() # 颜色对话框(十六进制的值会保存在color变量中)if color.isValid(): # 判断color是否有效self.text_edit.setTextColor(color)font, ok = QFontDialog.getFont() # 字体对话框if ok:self.text_edit.setFont(font)
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()相同,第四个参数为要加入的选项内容,第五个参数为最初显示的选项,最后一个参数是选项内容是否可编辑。
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的详细使用方法及各控件的属性与方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。