1. 程式人生 > 實用技巧 >按鈕類控制元件-QPushButton

按鈕類控制元件-QPushButton

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_())