QToolButton with text:覆盖最小高度到minic常规按钮高度

时间:2015-02-14 13:08:15

标签: qt qt5 qgridlayout qaction qsizepolicy

我在工具栏外显示带有图标和文字( 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,并再次销毁虚拟按钮。有更优雅/可靠的方式吗?

1 个答案:

答案 0 :(得分:1)

我不明白你想要达到什么目的。

QPushButtonQToolButton之间的区别在于,QToolButton已经实现了PopupMenu(也可以轻松地为QPushButton完成) 据我所知,当您使用添加QActionsQToolButton时,视觉差异只是QToolButton右下角的小箭头

此箭头仅适用于QToolButtonQPushButton之间的区别。但也许我错过了一些东西。

从您的示例(QToolButton with icon + text: How to center both?) 看起来你不想使用那个弹出功能。这就是为什么我不明白,为什么要使用QToolButton代替QPushButtons。

在此示例中显示: 1)QToolButtonQPushButton的高度相同 2)QPushButton

的PopuMenu

至于我,我不明白为什么要使用QToolButton并尝试使用QPushButton作为QPushButton

QToolButton