QPushButton和QToolButton之间的区别

时间:2016-07-25 19:58:49

标签: c++ qt qpushbutton qtoolbutton

我是Qt的新手,QPushButtonQToolButton之间的差异对我来说并不是那么清楚。

我知道QToolButton通常使用QToolBar,它通常只显示一个图标,没有文字,但我不太明白两者之间的主要区别。

它有更大的区别吗? 我应该何时使用QPushButton,何时应该使用QToolButton

我想知道这个使用最合适的按钮,我需要执行一些GUI测试,也许它可能是相关的。

2 个答案:

答案 0 :(得分:21)

QToolButton是QtWidgets模块中一组小部件的一部分,它围绕QActionQMenuQToolBar等等。 QPushButton只是一个按钮。因此,QToolButtonQPushButton更加复杂。一个(不完整的)示例列表:

  • QToolButton旨在与QAction紧密集成。更改工具按钮默认操作的图标,文本等将反映在按钮上。
  • 您可以更改工具按钮内容的布局(仅图标,仅文本,图标旁边的文本,图标下方的文字)。
  • QToolButton支持“拆分”按钮类型,其中侧边栏热区打开菜单而不是触发默认操作。
  • 可以通过添加操作直接在QToolBar中创建工具按钮,而必须明确添加其他小部件。

另请注意:

  • QToolButton的默认内部边距小于QPushButton,反映出它意图以紧密的行或网格显示。 QPushButton更适用于包含带可选图标的文字的“确定”/“关闭”类型按钮。
  • QToolButton通常应该有一个图标。 QPushButton应始终包含文字。

答案 1 :(得分:5)

来自Qt doc:http://doc.qt.io/qt-5/qtoolbutton.html#details

“工具按钮是一个特殊按钮,可以快速访问特定命令或选项。与普通命令按钮相反,工具按钮通常不显示文本标签,而是显示图标。”< / p>

当我想在GUI中只有一个图标的按钮时,我使用QToolButton。但是当我想要一个经典按钮时,我会使用QPushButton。

没有太大差异,