我试图将一组按钮添加到可以切换的工具栏上。如果有多个按钮可以显示,则显示V形符号,但它显示为灰色,并且不显示剩余内容。
最初我有:
toolbar = QtGui.QToolbar()
newButton = QtGui.QPushButton('name')
newButton.toggled.connect(myAction)
toolbar.addWidget(newButton)
我读到我需要创建customWidgetAction
,所以我尝试了以下内容:
toolbar = QtGui.QToolbar()
newButton = QtGui.QPushButton()
widgetAction = QtGui.QWidgetAction(newButton)
widgetAction.toggled.connect(myAction)
newWidget = widgetAction.createWidget(newButton)
toolbar.addWidget(newButton)
但是,使用此代码时,按钮不会显示在工具栏中。关于我做错了什么的指示?
答案 0 :(得分:0)
我看到了同样的行为。如果小工具被添加到工具栏中并且工具栏无法全部显示,则它将显示一个V形符号,但是V形图标将显示为灰色。雪佛龙不会因为行动而变得灰暗,而且它们会以下拉式的方式显示出来。
我的例子只是使用标准的QAction
:
from PySide import QtGui
app = QtGui.QApplication([])
tb = QtGui.QToolBar()
#tb.addWidget(QtGui.QPushButton('AAA'))
#tb.addWidget(QtGui.QPushButton('BBB'))
#tb.addWidget(QtGui.QPushButton('CCC')) # will not be shown in case the toolbar is too short, chevron will be greyed
tb.addAction(QtGui.QAction('AAA', tb))
tb.addAction(QtGui.QAction('BBB', tb))
tb.addAction(QtGui.QAction('CCC', tb))
tb.addAction(QtGui.QAction('DDD', tb))
tb.addAction(QtGui.QAction('EEE', tb))
tb.resize(50, 40)
tb.show()
app.exec_()
如果你想将动作连接到有用的东西,那么模式就是:
toolbar = QtGui.QToolBar()
action = QtGui.QAction(icon, 'Create new scenario', toolbar)
action.triggered.connect(..)
toolbar.addAction(action)
QWidgetAction
似乎比QAction
稍微复杂一些,尽管它也应该有效。如果您不需要添加的功能,请使用QAction
和一个简单的图标。