部件是一个应用程序的基本组件块。PyQt5具有大量的组件,包含按钮、选择框、滑块或列表盒子等。本章则主要介绍一些常用的组件:QCheckBox、tooggle模式下的QPushButton、QSlider、QProgressBar和QCalendarWidget。
QCheckBox
QCheckBox具有两种状态的部件:打开和关闭。这是一个带有标签的盒子,复选框通常用于表示可以启用或禁用的应用程序中的功能。
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
cb = QCheckBox('Show title', self)
cb.move(20, 20)
cb.toggle()
cb.stateChanged.connect(self.changeTitle)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QCheckBox')
self.show()
def changeTitle(self, state):
if state == Qt.Checked:
self.setWindowTitle('QCheckBox')
else:
self.setWindowTitle(' ')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
以上示例中,我们创建了一个用于切换窗口标题的复选框。
cb = QCheckBox('show title', self)
这是QCheckBox的构造器
cb.toggle()
我们设置了标题,因此我们也勾选了复选框。
cb.stateChanged.connect(self.changeTitle)
stateChanged 信号连接到用户定义的changeTitle()方法,,这个changeTitle()方法会切换窗口的标题。
def changeTitle(self, state): if state == Qt.Checked: self.setWindowTitle('QCheckBox') else: self.setWindowTitle(' ')
窗口小部件的状态被赋予状态变量中的changeTitle()方法,如果选中小部件,我们就设置窗口的标题,否则,我们将一个空字符串设置为标题。
Toggle button
切换按钮是特殊模式下的QPushButton。它是有两种状态的按钮:按下和没有按下。我们通过点击切换两种状态,在某些情况下,此功能非常的适用。
import sys
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QWidget, QPushButton, QFrame, QApplicat