- 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
广告