我不知道如何创建带有两行小部件的工具栏。我正在做一个Python3 3/Qt4 4项目。
我猜:
但是我得到的只是一个小小的、空的工具栏:我需要以某种方式“拉伸”这个小部件吗?
我的Python3代码,试图在工具栏中垂直插入两个按钮:
self.main_toolbar = self.addToolBar('MyToolBar')
self.toolbar_widget = QtGui.QWidget(self.main_toolbar)
self.toolbar_layout = QtGui.QVBoxLayout()
self.toolbar_widget.setLayout(self.toolbar_layout)
button1 = QtGui.QPushButton(self)
button1.setText("button1")
self.toolbar_layout.addWidget( button1 )
button2 = QtGui.QPushButton(self)
button2.setText("button2")
self.toolbar_layout.addWidget( button2 )发布于 2014-01-27 14:43:20
很简单:你真的需要两个工具栏,一个在另一个下面。
不能仅仅将子部件添加到工具栏中。您的main_toolbar大概是QToolBar类的。您不能简单地向它添加一个toolbar_widget!
两种方法都不能更改QToolBar的布局。工具栏本身管理其子程序的布局,您不应该使用它--它不是这样设计的。
将小部件添加到工具栏的唯一方法是通过工具栏的addWidget方法,而不是布局的!
你的代码错了。您所能做的,以及您对工具栏所能做的就是:
self.main_toolbar = self.addToolBar('MyToolBar')
button1 = QtGui.QPushButton(self)
button1.setText("button1")
self.main_toolbar.addWidget( button1 )
button2 = QtGui.QPushButton(self)
button2.setText("button2")
self.main_toolbar.addWidget( button2 )您想要做的是根本不支持工具栏。工具栏可能会将其项安排在多个行中,如果它们都不合适的话。这可能取决于风格。你可以随意插入“高”工具栏小部件,里面有一个内部布局和两个子按钮,但它看起来很难看。
发布于 2014-01-27 18:51:54
您发布的代码很好,只是忘了将小部件添加到工具栏中。
您可以使用QToolBar.addWidget来完成这个任务。
self.main_toolbar.addWidget(self.toolbar_widget)https://stackoverflow.com/questions/21376935
复制相似问题