按鈕類控制元件-QPushButton
阿新 • • 發佈:2020-07-30
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_())