- PyQt5 教程
- PyQt5 - 首頁
- PyQt5 - 簡介
- PyQt5 - 新特性
- PyQt5 - Hello World
- PyQt5 - 主要類
- PyQt5 - 使用 Qt Designer
- PyQt5 - 訊號與槽
- PyQt5 - 佈局管理
- PyQt5 - 基本控制元件
- PyQt5 - QDialog 類
- PyQt5 - QMessageBox
- PyQt5 - 多文件介面
- PyQt5 - 拖放
- PyQt5 - 資料庫操作
- PyQt5 - 繪圖 API
- PyQt5 - BrushStyle 常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 類
- PyQt5 有用資源
- PyQt5 - 快速指南
- PyQt5 - 有用資源
- PyQt5 - 討論
PyQt5 - QRadioButton 控制元件
一個QRadioButton 類物件呈現一個可選按鈕,並帶有文字標籤。使用者可以選擇表單上提供的多個選項之一。此類派生自 QAbstractButton 類。
預設情況下,單選按鈕是互斥的。因此,一次只能選擇父視窗中的一個單選按鈕。如果選擇了其中一個,則先前選擇的按鈕將自動取消選擇。單選按鈕也可以放在QGroupBox 或QButtonGroup 中,以便在父視窗上建立多個可選欄位。
以下列出的 QRadioButton 類方法最常用。
| 序號 | 方法及描述 |
|---|---|
| 1 |
setChecked() 更改單選按鈕的狀態 |
| 2 |
setText() 設定與按鈕關聯的標籤 |
| 3 |
text() 檢索按鈕的標題 |
| 4 |
isChecked() 檢查按鈕是否被選中 |
與 QRadioButton 物件關聯的預設訊號是 toggled(),儘管也可以實現從 QAbstractButton 類繼承的其他訊號。
示例
這裡在頂級視窗上構建了兩個互斥的單選按鈕。
透過語句將 b1 的預設狀態設定為選中狀態:
Self.b1.setChecked(True)
兩個按鈕的 toggled() 訊號都連線到 btnstate() 函式。使用 lambda 允許將訊號的來源作為引數傳遞給函式。
self.b1.toggled.connect(lambda:self.btnstate(self.b1)) self.b2.toggled.connect(lambda:self.btnstate(self.b2))
btnstate() 函式檢查發出 toggled() 訊號的按鈕的狀態。
if b.isChecked() == True:
print b.text()+" is selected"
else:
print b.text()+" is deselected"
QRadioButton 示例的完整程式碼如下:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Radiodemo(QWidget):
def __init__(self, parent = None):
super(Radiodemo, self).__init__(parent)
layout = QHBoxLayout()
self.b1 = QRadioButton("Button1")
self.b1.setChecked(True)
self.b1.toggled.connect(lambda:self.btnstate(self.b1))
layout.addWidget(self.b1)
self.b2 = QRadioButton("Button2")
self.b2.toggled.connect(lambda:self.btnstate(self.b2))
layout.addWidget(self.b2)
self.setLayout(layout)
self.setWindowTitle("RadioButton demo")
def btnstate(self,b):
if b.text() == "Button1":
if b.isChecked() == True:
print b.text()+" is selected"
else:
print b.text()+" is deselected"
if b.text() == "Button2":
if b.isChecked() == True:
print b.text()+" is selected"
else:
print b.text()+" is deselected"
def main():
app = QApplication(sys.argv)
ex = Radiodemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
以上程式碼產生以下輸出:
Button1 is deselected Button2 is selected Button2 is deselected Button1 is selected
pyqt_basic_widgets.htm
廣告