一、前言
在任何 GUI 设计中,命令按钮都是最重要和最常用的控件。任何计算机用户都熟悉带有保存、打开、确定、是、否和取消等作为标题的按钮。在 PyQt API 中,QPushButton类对象提供了一个按钮,当单击该按钮时,可以对其进行编程以调用某个功能。
QAbstractButton类是所有按钮的基类,QPushButton、QToolButton、QRadioButton、QcheckBox都继承自它,也就是说这四种控件拥有QAbstractButton类的所有属性和方法。
二、学习目标
1.QPushButton常用方法
2.QPushButton常用信号
3.QPushButton组件的应用
三、知识点
1.【QPushButton常用方法】
方法 | 描述 |
---|---|
setCheckable() | 设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态 |
toggle() | 在按钮状态之间进行切换 |
setIcon() | 设置按钮上的图标 |
setEnabled() | 设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号 |
isChecked() | 返回按钮的状态,返回值为True或者False |
setDefault() | 设置按钮的默认状态 |
setText() | 设置按钮的显示文本 |
text() | 返回按钮的显示文本 |
2.【QPushButton常用信号】
信号 | 描述 |
---|---|
pressed | 当鼠标指针在按钮上并按下左键时触发该信号,一直按着或者按下并释放都会产生 |
released | 当鼠标左键被释放时触发该信号 |
clicked | 当鼠标左键被按下,一直按着或者释放时,或者快捷键被按着或者释放时触发该信号 |
toogled | 当按钮的checkable设置为True时,其状态发生改变时触发该信号 |
3.【QPushButton组件的应用】
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体
self.setupUi()
def setupUi(self):
"""页面初始化"""
# 设置窗体大小及标题
self.resize(500, 400)
self.setWindowTitle("QPushButton组件示例")
# 创建布局
self.layout = QVBoxLayout()
# QPushButton组件示例
self.button1 = QPushButton(self)
self.button1.setText("第一个按钮")
self.button2 = QPushButton('第二个按钮', self)
# QPushButton组件设置
self.button1.setEnabled(False) # button1设置按钮不可用
self.button2.setIcon(QIcon('logo.png')) # button2设置按钮图标
# QPushButton关联信号
self.button2.clicked.connect(self.on_button2_clicked) # button2按钮关联点击信号
# 将组件添加到布局中
self.layout.addWidget(self.button1)
self.layout.addWidget(self.button2)
# 为窗体添加布局
self.setLayout(self.layout)
def on_button2_clicked(self):
"""button2按钮点击槽函数"""
print("button2按钮被点击啦!")
if __name__ == '__main__':
app = QApplication(sys.argv)
myMain = QmyWidget()
myMain.show()
sys.exit(app.exec_())
-
关键代码:
# QPushButton组件示例 self.button1 = QPushButton(self) self.button1.setText("第一个按钮") self.button2 = QPushButton('第二个按钮', self) # QPushButton组件设置 self.button1.setEnabled(False) # button1设置按钮不可用 self.button2.setIcon(QIcon('logo.png')) # button2设置按钮图标 # QPushButton关联信号 self.button2.clicked.connect(self.on_button2_clicked) # button2按钮关联点击信号
定义两个按钮组件,分别为button1设置不可点击,为button2设置按钮图标,并为button2关联点击信号。