QPushButton类继承自QAbstractButton类。
QPushButton类中的常用方法
setCheckable() 设置按钮是否已经被选中,如果设置为True,则表示按钮将保持已点击和释放状态
toggle() 在按钮状态之间进行切换
setIcon() 设置按钮上的图标
setEnabled() 设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号
isChecked() 返回按钮的状态。返回值为True或False
setDefault() 设置按钮的默认状态
setText() 设置按钮的显示文本
Text() 返回按钮的显示文本
为QPushButton设置快捷键
通过按钮名字能为QPushButton设置快捷键,比如名字为“&Download”的按钮,它的快捷键是“Alt+D”。其规则是:想要实现快捷键为“Alt+D”,那么按钮的名字里就要有这个字母D,并且在字母D前面加上“&”。这个字母D一般是按钮名称的首字母,而且在按钮显示时,“&”不会被显示出来,但字母D会显示一条下划线。如果要显示“&”,需要使用“&&”。
案例14 QPushButton按钮的使用
import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * class Form(QDialog): def __init__(self, parent=None): super().__init__(parent) layout = QVBoxLayout() self.btn1 = QPushButton("Button1") self.btn1.setCheckable(True) self.btn1.toggle() self.btn1.clicked.connect(lambda: self.whichbtn(self.btn1)) self.btn1.clicked.connect(self.btnstate) layout.addWidget(self.btn1) self.btn2 = QPushButton("image") self.btn2.setIcon(QIcon(QPixmap("./images/python.png"))) self.btn2.clicked.connect(lambda: self.whichbtn(self.btn2)) layout.addWidget(self.btn2) self.setLayout(layout) self.btn3 = QPushButton("Disabled") self.btn3.setEnabled(False) layout.addWidget(self.btn3) self.btn4 = QPushButton("&Download") self.btn4.setDefault(True) self.btn4.clicked.connect(lambda: self.whichbtn(self.btn4)) layout.addWidget(self.btn4) self.setWindowTitle("Button Demo") def btnstate(self): if self.btn1.isChecked(): print("button pressed") else: print("button released") def whichbtn(self, btn): print("clicked button is " + btn.text()) if __name__ == "__main__": app = QApplication(sys.argv) btndemo = Form() btndemo.show() sys.exit(app.exec_())