首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Qt)工具栏中的两行小部件

(Qt)工具栏中的两行小部件
EN

Stack Overflow用户
提问于 2014-01-27 09:17:11
回答 2查看 3.4K关注 0票数 2

我不知道如何创建带有两行小部件的工具栏。我正在做一个Python3 3/Qt4 4项目。

我猜:

  • 向工具栏小部件添加一个小部件
  • 向小部件添加垂直布局(或QGridLayout,没关系)
  • 将工具栏的按钮添加到布局中

但是我得到的只是一个小小的、空的工具栏:我需要以某种方式“拉伸”这个小部件吗?

我的Python3代码,试图在工具栏中垂直插入两个按钮:

代码语言:javascript
复制
    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 )
EN

回答 2

Stack Overflow用户

发布于 2014-01-27 14:43:20

很简单:你真的需要两个工具栏,一个在另一个下面。

不能仅仅将子部件添加到工具栏中。您的main_toolbar大概是QToolBar类的。您不能简单地向它添加一个toolbar_widget

两种方法都不能更改QToolBar的布局。工具栏本身管理其子程序的布局,您不应该使用它--它不是这样设计的。

将小部件添加到工具栏的唯一方法是通过工具栏的addWidget方法,而不是布局的

你的代码错了。您所能做的,以及您对工具栏所能做的就是:

代码语言:javascript
复制
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 )

您想要做的是根本不支持工具栏。工具栏可能会将其项安排在多个行中,如果它们都不合适的话。这可能取决于风格。你可以随意插入“高”工具栏小部件,里面有一个内部布局和两个子按钮,但它看起来很难看。

票数 1
EN

Stack Overflow用户

发布于 2014-01-27 18:51:54

您发布的代码很好,只是忘了将小部件添加到工具栏中。

您可以使用QToolBar.addWidget来完成这个任务。

代码语言:javascript
复制
    self.main_toolbar.addWidget(self.toolbar_widget)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21376935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档