py中的pyqt5的多个radiobutton如何一起取消选中状态
时间: 2024-03-31 19:32:23 浏览: 134
RadioButton实现选择后可取消选择
5星 · 资源好评率100%
在PyQt5中,要实现多个RadioButton一起取消选中状态,可以使用QButtonGroup类来实现。以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup, QVBoxLayout
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
# 创建多个RadioButton,并将它们放入同一个ButtonGroup中
self.rbtn1 = QRadioButton('Option 1')
vbox.addWidget(self.rbtn1)
self.rbtn2 = QRadioButton('Option 2')
vbox.addWidget(self.rbtn2)
self.rbtn3 = QRadioButton('Option 3')
vbox.addWidget(self.rbtn3)
self.btnGroup = QButtonGroup()
self.btnGroup.addButton(self.rbtn1)
self.btnGroup.addButton(self.rbtn2)
self.btnGroup.addButton(self.rbtn3)
# 创建一个按钮来取消所有RadioButton的选中状态
btn = QPushButton('Clear')
btn.clicked.connect(self.clearRadioButtons)
vbox.addWidget(btn)
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('RadioButton Example')
self.show()
def clearRadioButtons(self):
# 通过调用QButtonGroup的setExclusive方法来将所有RadioButton的选中状态都取消
self.btnGroup.setExclusive(False)
self.rbtn1.setChecked(False)
self.rbtn2.setChecked(False)
self.rbtn3.setChecked(False)
self.btnGroup.setExclusive(True)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在上面的代码中,我们创建了三个RadioButton,并将它们放入同一个ButtonGroup中。然后,我们创建了一个“Clear”按钮来取消所有RadioButton的选中状态。在按钮的clicked信号中,我们调用了QButtonGroup的setExclusive方法来将所有RadioButton的选中状态都取消。注意,我们在调用setChecked方法之前需要先将setExclusive设置为False,否则只能有一个RadioButton处于未选中状态。
阅读全文