QAbstractBUtton:
??所有按鈕控制元件的基類
??提供按鈕的通用功能
??繼承自QWidget
??屬于抽象類別,不能直接去使用,必須借助于子類(除非你覺得子類不夠用,想自定義一個按鈕)
??大部分功能之前已經使用過,在這里只作簡單介紹
文本設定:
setText(str) :設定按鈕提示文本
text() : 獲取按鈕提示文本
圖示設定:
點擊查看代碼
btn = QPushButton(window)
icon = QIcon("madeline.jpg")
size = QSize(50, 50) # Qsize格式
btn.setIconSize(size) # 設定圖示大小
btn.setIcon(icon) # 設定圖示
print(btn.icon()) # 獲取圖示
print(btn.iconSize()) # 獲取圖示大小
快捷鍵設定
??通過指定的快捷鍵,觸發按鈕的點擊
點擊查看代碼
btn.setText("a&bc") # 方法一:在快捷鍵字母前加“&”符號,在文本中不會顯示,使用方法:Alt+快捷鍵字母
btn.setShortcut("Alt+G") # 方法二:這樣設定,不區分大小寫
自動重復

點擊查看代碼
btn.setAutoRepeat(True) # 設定是否自動重復
print(btn.autoRepeat()) # 檢測是否自動重復
btn.setAutoRepeatDelay(2000) # 設定自動重復開始時間(ms)
btn.setAutoRepeatInterval(1000) # 設定自動重復間隔(ms)
print(btn.autoRepeatDelay()) # 獲取開始自動重復時間
print(btn.autoRepeatInterval()) # 獲取自動重復時間間隔
狀態設定

點擊查看代碼
push_btn = QPushButton(window)
push_btn.setText("這是按鈕")
push_btn.move(100, 100)
push_btn.setStyleSheet("QPushButton:pressed {background-color: red;}")
radio_btn = QRadioButton(window)
radio_btn.setText("Radio")
radio_btn.move(100, 150)
checkbox = QCheckBox(window)
checkbox.setText("Checkbox")
checkbox.move(100, 200)
# 把三個按鈕置為按下狀態
push_btn.setDown(True)
print(push_btn.isDown()) # 檢查是否按下
radio_btn.setDown(True)
checkbox.setDown(True)
push_btn.setCheckable(True) # 設定按鈕是否可以被選中
print(push_btn.isCheckable()) # 檢查是否可以被選中
print(radio_btn.isCheckable()) # 檢查是否可以被選中
print(checkbox.isCheckable()) # 檢查是否可以被選中
radio_btn.setChecked(True) # 設定按鈕為被選中
push_btn.setChecked(True)
checkbox.setChecked(True)
print(push_btn.isChecked()) # 檢查按鈕是否被選中
print(radio_btn.isChecked())
print(checkbox.isChecked())
def cao():
print("cao")
# push_btn.toggle()
radio_btn.toggle()
checkbox.toggle()
push_btn.setChecked(not push_btn.isChecked())
btn.pressed.connect(cao)
push_btn.setEnabled(False) # 設定按鈕是否可用
radio_btn.setEnabled(False)
checkbox.setEnabled(False)
排他性
??如果同時存在多個按鈕,而此時所有按鈕又設定了排他性,則在同一時刻只能選中一個按鈕
點擊查看代碼
btn.setAutoExclusive(True) # 設定是否有排他性
print(btn.autoExclusive()) # 檢查是否有排他性
??對于QRadioButton,默認具有排他性,對于QCheckBox型別,默認不具有排他性
模擬點擊:使用代碼觸發按鈕點擊
btn.click() # 模擬用戶點擊
btn.animateClick(2000) # 帶有影片的模擬點擊(影片顯示時間:ms)
設定點擊有效區域
點擊查看代碼
class Btn(QPushButton):
def hitButton(self, point):
print(point) # 相對于按鈕左上角的坐標(實時)
if point.x() > self.width()/2:
return True # 傳出信號
return False # 不傳出
btn = Btn(window)
btn.move(100, 100)
btn.resize(200, 200)
btn.setText("點擊")
btn.pressed.connect(lambda: print("按鈕被點擊了"))
可用信號
點擊查看代碼
btn = Btn(window)
btn.move(100, 100)
btn.resize(200, 200)
btn.setText("點擊")
btn.setCheckable(True)
btn.pressed.connect(lambda: print("按鈕被按下了"))
btn.released.connect(lambda: print("按鈕被釋放了"))
btn.clicked.connect(lambda value: print("按鈕被點擊了", value)) # value代表按鈕是否被選中
btn.toggled.connect(lambda value: print("按鈕選中狀態發生改變", value)) # value代表按鈕是否被選中\一般在單選框或復選框中使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548586.html
標籤:其他
上一篇:QML和QT
