1

在我的项目中,我有一个QToolBar默认大小和大小策略。我想将工具栏的高度增加到 36px。

到目前为止,我已经尝试过:

  • 将样式表属性设置为工具栏:height: 36px;
  • 将工具栏对象的大小策略设置为固定:toolBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
  • 设置最小高度:toolBar->setMinimumHeight(36);
  • 设置布局大小约束toolBar->layout()->setSizeConstraint(QLayout::SetMinimumSize)
  • 所有这些同时

没有什么会增加工具栏的高度。唯一有效的方法是增加QToolButton栏中对象的大小,但这不是我想要做的。我只希望工具栏本身更高。

有什么建议么?谢谢你的时间。

编辑:我当前的解决方案是为工具栏中的 QToolButton 对象添加边距。我仍然不喜欢这个,因为我在工具栏中有不同的对象类型......令人沮丧。

4

3 回答 3

5

toolBar->setFixedHeight(36);- 效果很好。

但是如果我在此之后设置图标大小:

toolBar->setFixedHeight(36); 
toolBar->setIconSize(QSize(10, 10));

高度崩溃。如果我通过样式表设置图标大小也会发生这种情况。

更改通话顺序有助于:

toolBar->setIconSize(QSize(10, 10));
toolBar->setFixedHeight(36);
于 2017-10-05T19:38:08.883 回答
1

我刚刚注意到我的项目中的 QToolBar 存在同样的问题,尽管明确调用它并没有改变它的高度setMinimumHeight(64)。事实证明,使用 singleShot QTimer 将其延迟到主线程的事件循环中有助于:

# self is an instance of a QToolBar subclass
QtCore.QTimer.singleShot(0, lambda : self.setMinimumHeight(64))

(它在 PyQt5 中,但你应该明白这一点。)

于 2019-01-11T10:43:50.730 回答
1

toolbar->setFixedHeight(36)应该管用

文档在这里

于 2017-10-03T14:53:48.640 回答