pyqt5中QRadioButton的使用
时间: 2024-06-10 08:05:12 浏览: 104
Python中PyQt5的QRadioButton是一种单选按钮控件。你可以添加多个QRadioButton并且只有其中一个可以被选中。这个控件可以用于二选一等需要用户从多个选项中选择一个的场景。要使用QRadioButton,你需要使用QButtonGroup将它们归组并设置默认选中项。
以下是一段简单的代码示例:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QLabel, QHBoxLayout, QVBoxLayout, QButtonGroup
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.label = QLabel('请选择你喜欢的编程语言:')
self.rb1 = QRadioButton('Python')
self.rb2 = QRadioButton('Java')
self.rb3 = QRadioButton('C++')
self.rb1.setChecked(True)
hbox = QHBoxLayout()
hbox.addWidget(self.rb1)
hbox.addWidget(self.rb2)
hbox.addWidget(self.rb3)
self.group = QButtonGroup()
self.group.addButton(self.rb1, 1)
self.group.addButton(self.rb2, 2)
self.group.addButton(self.rb3, 3)
self.group.buttonClicked.connect(self.on_radio_button_clicked)
vbox = QVBoxLayout()
vbox.addWidget(self.label)
vbox.addLayout(hbox)
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('QRadioButton')
self.show()
def on_radio_button_clicked(self, id):
rb = self.group.checkedButton()
self.label.setText(f'你选择了{rb.text()}')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个例子中,我们创建了3个QRadioButton控件并将它们归为一组。我们设置了默认选中项为Python。当用户选中一个不同的选项时,我们通过连接group的buttonClicked信号和on_radio_button_clicked方法来更新选中的选项,并将用户的选择打印到标签中。
阅读全文