GUI Python界面编程PyQt5窗体小部件

一、简介在Qt(和大多数用户界面)中 , “小部件”是用户可以与之交互的UI组件的名称 。用户界面由布置在窗口内的多个小部件组成 。
Qt带有大量可用的小部件 , 也允许您创建自己的自定义和自定义小部件 。
二、小部件列表Qt文档中提供了所有小部件的完整列表 , 但让我们快速了解一下它们的实际效果 。
from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *# 仅用于访问命令行参数import sys# 子类QMainWindow来定制你的应用程序的主窗口class MainWindow(QMainWindow):def __init__(self, *args, **kwargs):super(MainWindow, self).__init__(*args, **kwargs)self.setWindowTitle("高效码农")layout = QVBoxLayout()widgets = [QCheckBox,QComboBox,QDateEdit,QDateTimeEdit,QDial,QDoubleSpinBox,QFontComboBox,QLCDNumber,QLabel,QLineEdit,QProgressBar,QPushButton,QRadioButton,QSlider,QSpinBox,QTimeEdit]for w in widgets:layout.addWidget(w())widget = QWidget()widget.setLayout(layout)# 设置窗口的中心部件 。小部件将在默认情况下展开以占据窗口中的所有空间 。self.setCentralWidget(widget)# 每个应用程序需要一个(且只有一个)QApplication实例 。# 如果确定不会使用命令行参数 , QApplication([])也可以 。app = QApplication(sys.argv)window = MainWindow()window.show() # 重要!!!!! windows 默认是隐藏的.# 启动.app.exec_()运行效果:

GUI Python界面编程PyQt5窗体小部件

文章插图
 
三、QLabel【GUI Python界面编程PyQt5窗体小部件】我们从最简单的小部件QLabl开始 。废话不多说上代码~~~
from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *# 仅用于访问命令行参数import sys# 子类QMainWindow来定制你的应用程序的主窗口class MainWindow(QMainWindow):def __init__(self, *args, **kwargs):super(MainWindow, self).__init__(*args, **kwargs)self.setWindowTitle("高效码农")widget = QLabel("Hello") #用字符串Hello创建 QLabel部件 , 也可以使用.setText()方法# widget.setText("2")font = widget.font()font.setPointSize(300) # 设置QLabel字体大小widget.setFont(font)widget.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) # 设置QLabel显示位置self.setCentralWidget(widget)# 每个应用程序需要一个(且只有一个)QApplication实例 。# 如果确定不会使用命令行参数 , QApplication([])也可以 。app = QApplication(sys.argv)window = MainWindow()window.show() # 重要!!!!! Windows 默认是隐藏的.# 启动.app.exec_()运行效果:
GUI Python界面编程PyQt5窗体小部件

文章插图
 
请注意 , 您使用OR管道(|)组合了两个标志(不是A & B) 。这是因为标志是不重叠的位掩码 。例如Qt.AlignLeft具有十六进制值0x0001 , Qt.AlignBottom而是0x0040 。
通过“或”运算 , 我们得到0x0041表示“左下” 的值 。该原理适用于所有其他组合Qt标志 。
如果您觉得这很乱 , 只记得使用’|‘ 就行了
四、QCheckBoxQCheckBox是向用户显示一个可复选框 。与所有Qt小部件一样 , 有许多可配置的选项可以更改小部件的行为 。
from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *# 仅用于访问命令行参数import sys# 子类QMainWindow来定制你的应用程序的主窗口class MainWindow(QMainWindow):def __init__(self, *args, **kwargs):super(MainWindow, self).__init__(*args, **kwargs)self.setWindowTitle("高效码农")widget = QCheckBox()# 设置复选框状态 分别为:Qt.Unchecked 未选中Qt.PartiallyChecked 中间状态(没有被选中 , 也没有不被选中) Qt.Checked 已选中widget.setCheckState(Qt.PartiallyChecked)widget.stateChanged.connect(self.show_state)self.setCentralWidget(widget)def show_state(self, s):print(s == Qt.Checked)print(s)# 每个应用程序需要一个(且只有一个)QApplication实例 。# 如果确定不会使用命令行参数 , QApplication([])也可以 。app = QApplication(sys.argv)window = MainWindow()window.show() # 重要!!!!! Windows 默认是隐藏的.# 启动.app.exec_()五、QComboBoxQComboBox是一个下拉列表 , 默认情况下关闭 , 用箭头打开 。您可以从列表中选择一个项目 , 当前选中的项目将显示为小部件上的标签 。组合框适合于从一长列选项中选择一个选项 。
from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *# 仅用于访问命令行参数import sys# 子类QMainWindow来定制你的应用程序的主窗口class MainWindow(QMainWindow):def __init__(self, *args, **kwargs):super(MainWindow, self).__init__(*args, **kwargs)self.setWindowTitle("高效码农")widget = QComboBox()widget.addItems(["One", "Two", "Three"])# 默认传递索引widget.currentIndexChanged.connect( self.index_changed )# 同样的信号也可以发送文本widget.currentIndexChanged[str].connect( self.text_changed )self.setCentralWidget(widget)def index_changed(self, i): # i is an intprint(i)def text_changed(self, s): # s is a strprint(s)# 每个应用程序需要一个(且只有一个)QApplication实例 。# 如果确定不会使用命令行参数 , QApplication([])也可以 。app = QApplication(sys.argv)window = MainWindow()window.show() # 重要!!!!! Windows 默认是隐藏的.# 启动.app.exec_()


推荐阅读