Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使工具栏中的工具按钮一次只选择一个?_Python_Pyqt_Pyqt5_Qtoolbar - Fatal编程技术网

Python 如何使工具栏中的工具按钮一次只选择一个?

Python 如何使工具栏中的工具按钮一次只选择一个?,python,pyqt,pyqt5,qtoolbar,Python,Pyqt,Pyqt5,Qtoolbar,我通过toolbar.addAction()在QToolbar中有五个工具按钮,如果我选择其中一个,我希望其他按钮看起来不被选中 示例:如果我选择“A”按钮,并且程序现在处于“A”模式,其他程序将无法工作。您必须使用QActionGroup,还必须激活QAction的checkable属性: 导入系统 从PyQt5导入QtCore、QtGui、QtWidgets 类ToolDemo(QtWidgets.QMainWindow): def uuu init uuu(self,parent=None

我通过
toolbar.addAction()
QToolbar
中有五个工具按钮,如果我选择其中一个,我希望其他按钮看起来不被选中


示例:如果我选择“A”按钮,并且程序现在处于“A”模式,其他程序将无法工作。

您必须使用QActionGroup,还必须激活QAction的checkable属性:

导入系统 从PyQt5导入QtCore、QtGui、QtWidgets 类ToolDemo(QtWidgets.QMainWindow): def uuu init uuu(self,parent=None): 超级(工具演示,自我)。\uuuu初始化\uuuuu(父级) self.setWindowTitle(“工具栏演示”) toolbarBox=QtWidgets.QToolBar(自) 工具栏框。设置固定宽度(180) self.addToolBar(QtCore.Qt.RightToolBarArea,toolbarBox) vscode_action=qtwidts.QAction(“vscode”,self,checkable=True) ptt_action=qtwidts.QAction(“Ppt”,self,checkable=True) word_action=qtwidts.QAction(“word”,self,checkable=True) excel_action=QtWidgets.QAction(“excel”,self,checkable=True) other_action=qtwidts.QAction(“other”,self,checkable=True) group=QtWidgets.QActionGroup(self,exclusive=True) 行动( VSU操作代码, ptt_行动, 言行, 卓越行动, 其他行动, ): toolbarBox.addAction(操作) group.addAction(操作) def main(): app=qtwidts.QApplication(sys.argv) ex=ToolDemo() 例如:show() sys.exit(app.exec_()) 如果名称=“\uuuuu main\uuuuuuuu”: main() 更新:

如果要使用QCheckBox、QRadioButton、QPushButton和QToolButton等按钮,则必须使用QButtonGroup:

导入系统 从PyQt5导入QtCore、QtGui、QtWidgets 类ToolDemo(QtWidgets.QMainWindow): def uuu init uuu(self,parent=None): 超级(工具演示,自我)。\uuuu初始化\uuuuu(父级) self.setWindowTitle(“工具栏演示”) toolbarBox=QtWidgets.QToolBar(自) 工具栏框。设置固定宽度(180) self.addToolBar(QtCore.Qt.RightToolBarArea,toolbarBox) vscode_button=qtwidts.QCheckBox(self,text=“vscode”,checkable=True) ptt_button=qtwidts.QCheckBox(self,text=“Ppt”,checkable=True) word_button=qtwidts.QRadioButton(self,text=“word”,checkable=True) excel\u button=qtwidts.QPushButton(self,text=“excel”,checkable=True) 其他按钮=QtWidgets.QToolButton(self,text=“其他”,checkable=True) group=qtwidts.QButtonGroup(self,exclusive=True) 用于按钮输入( vscode_按钮, ptt_按钮, word_按钮, excel_按钮, 其他按钮, ): toolbarBox.addWidget(按钮) group.addButton(按钮) def main(): app=qtwidts.QApplication(sys.argv) ex=ToolDemo() 例如:show() sys.exit(app.exec_()) 如果名称=“\uuuuu main\uuuuuuuu”: main()
是否可以将复选框添加到QActionGroup中,以使用toolbutton执行相同的操作@於二號 我不明白你的意思,请你解释清楚。如果我设置了一个复选框,我可以用它来做类似的事情如上文所述,选择“复选框模式”或“Excel按钮模式”