2014-05-13 216 views
5

我想使QToolBar在停靠在QMainWindow的左侧时具有3列按钮,但在停靠在主窗口顶部时具有1行。这可能吗?使工具栏具有网格布局

我尝试使用带自定义布局的QToolBar,但QToolBar的正常重新尺寸行为不起作用(当它太小时,不会隐藏展开按钮后面的小部件)。非工作扩展按钮并不是什么大问题,但更大的问题是自定义布局会阻止主窗口比工具栏更小。

回答

6

我可以通过将工具按钮的每一行放在QHBoxLayout中,将该布局放在空的QWidget中,并且为每行调用toolBar->addWidget(widget)来获得所需的行为。当工具栏安装在左侧时,这给了我一个网格工具栏,并且在顶部安装了单个横条。

+0

很高兴你做到了!你能分享一些关于它的图像吗? – Tay2510

+1

对不起,我不认为我可以分享任何图像。但我可以描述它的行为。停靠在左侧的工具栏是一个有3列和几行的网格。当我垂直缩小窗口使得工具栏没有足够的空间时,按钮行将开始消失在正常的QT“扩展”按钮后面。当你点击展开按钮时,隐藏的行将会出现,尽管有点奇怪,因为它们仍然被分组为3。 – pauld

+1

当工具栏停靠在顶部时,它的外观和行为与正常工具栏几乎完全相同,唯一的例外是当主窗口水平收缩时,按钮将以3个组而不是1个为一组进行折叠。 – pauld