5.1 QAbstractButton按鈕控制元件基類API大全
阿新 • • 發佈:2022-03-26
一、QAbstractButton按鈕控制元件基類API大全
1.基本概念
1.提示文字:setText() text() 2.影象:setIcon() setIconSize() icon() iconSize() 3.快捷鍵: 4.自動重複: setAutoRepeat() 設定自動重複 setAutoRepeatInterval(毫秒) 設定自動重複間隔 setAutoRepeatDelay(毫秒) 設定首次自動重複延時 autoRepeat() 獲取自動重複 autoRepeatInterval() 獲取自動重複間隔 autoRepeatDelay() 獲取首次自動重複延時 5.按鈕狀態:setDown(bool) isDown() isChecked() setChecked(bool) isCheckable() setCheckable() toggle()全選/反選 繼承:QWidget中的:isEnabled() setEnabled(bool) 6.排他性:autoExclusive() setAutoExclusive(bool) 7.模擬點選:click() animateClick(ms) 8.按鈕點選有效區域設定:hitButton(QPoint)
2.程式碼
from PyQt5.Qt import * import sys app = QApplication(sys.argv) window = QWidget() window.setWindowTitle('QAbstractButton - PyQt5中文網') window.resize(600, 450) window.move(300, 300) btn = QPushButton(window) btn.setText('按鈕') #設定按鈕的名稱 btn.text() # ==============圖示設定=============== # 程式碼分割線 - 開始 qicon = QIcon('aaa.png') #獲取對應名稱的圖片 btn.setIcon(qicon) qsize = QSize(20, 20) #設定圖示的大小 btn.setIconSize(qsize) print(btn.icon()) print(btn.iconSize()) # ==============圖示設定=============== # 程式碼分割線 - 結束 # ==============快捷鍵設定=============== # 程式碼分割線 - 開始 btn.pressed.connect(lambda : print('WWWWW')) # btn.setText('&aaaa') # Alt + &後面的首字母 btn.setShortcut('Ctrl+s') # 這個使用起來更加自由 # ==============快捷鍵設定=============== # 程式碼分割線 - 結束 # ==============自動重複=============== # 程式碼分割線 - 開始 print(btn.autoRepeat()) #輸出沒有自動重複 btn.setAutoRepeat(True) #設定自動重複 btn.setAutoRepeatInterval(1000)#設定自動重複的速度 1000ms=1s btn.setAutoRepeatDelay(3000)#首次重複等待3s # ==============自動重複=============== # 程式碼分割線 - 結束 # ==============按鈕狀態=============== # 程式碼分割線 - 開始 btn2 = QPushButton(window) btn2.setText('第二個按鈕') btn2.move(100, 100) btn2.setStyleSheet('QPushButton:pressed {background-color:green}') btn2.setDown(True)#設定按鈕已經在按下的狀態,第二次就已經恢復正常了 #單選框按鈕 btn3 = QRadioButton(window) btn3.setText('單選按鈕') btn3.move(150, 150) btn3.setChecked(True) def tog() : # btn3.toggle() btn3.setChecked(not btn3.isChecked()) btn2.pressed.connect(tog) # ==============按鈕狀態=============== # 程式碼分割線 - 結束 # ==============排他性=============== # 程式碼分割線 - 開始 #多選框 btn4 = QCheckBox(window) btn4.move(200, 200) btn4.setText('男') btn4.setAutoExclusive(True) #True 表示有排他性 即選擇當前 另一個取消 btn5 = QCheckBox(window) btn5.move(200, 230) btn5.setText('女') btn5.setAutoExclusive(True) # ==============排他性=============== # 程式碼分割線 - 結束 # ==============按鈕模擬點選=============== # 程式碼分割線 - 開始 btn6 = QPushButton(window) btn6.setText('模擬點選') btn6.move(300, 300) # btn6.click() #自己先點選一次 btn6.animateClick(2000)# 會自動點選兩秒再鬆開 # ==============按鈕模擬點選=============== # 程式碼分割線 - 結束 # ==============按鈕點選有效區域設定=============== # 程式碼分割線 - 開始 class Btn2(QPushButton) : def hitButton(self, poi) : print(poi) #輸出點選位置 if poi.x() > self.width() / 2 :#有效區域 return True return False btn6 = Btn2(window) btn6.setText('有效區域') btn6.move(0, 300) btn6.pressed.connect(lambda : print('=========')) # ==============按鈕點選有效區域設定=============== # 程式碼分割線 - 結束 window.show() sys.exit(app.exec_())