我在工具栏外显示带有图标和文字( QToolButton )的Qt::ToolButtonTextBesideIcon个。每个按钮都有一个与之关联的QAction,用于确定使用的图标和显示的文本。所有这些按钮都放在QGridLayout内。到现在为止还挺好。
不幸的是,看起来只要你将QAction添加到QToolButton,Qt会自动决定将其缩小到最小尺寸,这不是我想要的QGridLayout。我使用以下行来纠正水平维度中的行为:
QToolButton* pButton = new QToolButton(0);
pButton->addDefaultAction(pAction);
pButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
pButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
然而,仍然使我的按钮的高度低于常规(按钮)。我已经尝试了各种其他规模的政策但没有成功。
如何最好地解决这个问题?有没有可靠的方法来确定“正常”按钮高度?
我的一个想法是创建一个常规的虚拟按钮,将它放在相同的布局中,然后读取它的大小。然后可以将此大小应用于我的QToolButton,并再次销毁虚拟按钮。有更优雅/可靠的方式吗?
答案 0 :(得分:1)
我不明白你想要达到什么目的。
QPushButton
和QToolButton
之间的区别在于,QToolButton
已经实现了PopupMenu(也可以轻松地为QPushButton完成)
据我所知,当您使用添加QActions
到QToolButton
时,视觉差异只是QToolButton右下角的小箭头
此箭头仅适用于QToolButton
和QPushButton
之间的区别。但也许我错过了一些东西。
从您的示例(QToolButton with icon + text: How to center both?) 看起来你不想使用那个弹出功能。这就是为什么我不明白,为什么要使用QToolButton代替QPushButtons。
在此示例中显示:
1)QToolButton
和QPushButton
的高度相同
2)QPushButton
至于我,我不明白为什么要使用QToolButton
并尝试使用QPushButton
作为QPushButton
1}} p>
QToolButton