QToolBar更改高度

时间:2016-11-20 22:25:46

标签: c++ qt qtstylesheets qtoolbar

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

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

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

没有任何东西会增加工具栏的高度。唯一有效的方法是增加条形图中QToolButton个对象的大小,但这不是我想要做的。我只希望工具栏本身更高。

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

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

3 个答案:

答案 0 :(得分:1)

exps=. /:~@{:@(__&q:) ft=: exps >:@]^:([ -.@-: exps@])^:_ >: ft 20 28 应该有效

Documentation here

答案 1 :(得分:1)

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

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

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

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

更改电话订单有助于:

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

答案 2 :(得分:0)

我只是注意到项目中的QToolBar出现了相同的问题,尽管显式调用了setMinimumHeight(64),但它的高度没有改变。事实证明,使用singleShot QTimer将其延迟到主线程的事件循环中会有所帮助:

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

(在PyQt5中,但您应该明白了。)