添加QPushbuttons时,工具栏V形符号不会展开

时间:2014-08-20 11:01:42

标签: python qt pyside toolbar

我试图将一组按钮添加到可以切换的工具栏上。如果有多个按钮可以显示,则显示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)

但是,使用此代码时,按钮不会显示在工具栏中。关于我做错了什么的指示?

1 个答案:

答案 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和一个简单的图标。