pyqt QToolBar 设置QAction互斥
时间: 2024-01-13 15:19:50 浏览: 112
在PyQt中,可以通过设置QAction的checkable属性为True来实现QAction的互斥。当一个QAction被选中时,其他与之关联的QAction将自动取消选中状态。
下面是一个示例代码,演示了如何在QToolBar中设置互斥的QAction:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QToolBar
def on_action_triggered():
print("Action triggered")
app = QApplication([])
window = QMainWindow()
toolbar = QToolBar()
window.addToolBar(toolbar)
action1 = QAction("Action 1", window)
action1.setCheckable(True)
action1.triggered.connect(on_action_triggered)
toolbar.addAction(action1)
action2 = QAction("Action 2", window)
action2.setCheckable(True)
action2.triggered.connect(on_action_triggered)
toolbar.addAction(action2)
action3 = QAction("Action 3", window)
action3.setCheckable(True)
action3.triggered.connect(on_action_triggered)
toolbar.addAction(action3)
toolbar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) # 设置按钮显示图标和文本
window.show()
app.exec_()
```
在上述代码中,我们创建了三个互斥的QAction,并将它们添加到了QToolBar中。当用户点击其中一个QAction时,其他的QAction将自动取消选中状态。
阅读全文