QT setExclusive
时间: 2024-01-13 12:05:05 浏览: 21
在QT中,`setExclusive()`是QButtonGroup类中的一个方法,用于设置按钮组中的按钮是否是互斥的。默认情况下,按钮组中的按钮是互斥的,即只能选择一个按钮。如果您想允许多个按钮同时被选中,则需要将`setExclusive()`设置为`False`。
以下是一个示例,展示如何使用`setExclusive()`方法:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout, QButtonGroup
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
# 创建一个QButtonGroup
self.group = QButtonGroup()
# 创建多个QRadioButton,并将它们添加到QButtonGroup中
rb1 = QRadioButton('Option 1')
rb2 = QRadioButton('Option 2')
rb3 = QRadioButton('Option 3')
self.group.addButton(rb1)
self.group.addButton(rb2)
self.group.addButton(rb3)
# 将QButtonGroup设置为非互斥模式
self.group.setExclusive(False)
# 将QRadioButton添加到垂直布局中
vbox.addWidget(rb1)
vbox.addWidget(rb2)
vbox.addWidget(rb3)
# 为QButtonGroup绑定按钮点击事件
self.group.buttonClicked.connect(self.on_button_clicked)
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QButtonGroup Example')
self.show()
def on_button_clicked(self, button):
# 处理按钮点击事件
print('Button %s clicked' % button.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在该示例中,我们将QButtonGroup设置为非互斥模式,这意味着用户可以同时选择多个按钮。当您单击任何一个按钮时,`on_button_clicked()`方法将被调用。
阅读全文