QPushButton 和 QToolButton 的区别

Difference between QPushButton and QToolButton

我是 Qt 的新手,我不太清楚 QPushButtonQToolButton 之间的区别。

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

有没有更大的区别? 什么时候应该使用 QPushButton 什么时候应该使用 QToolButton?

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

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

"A tool button is a special button that provides quick-access to specific commands or options. As opposed to a normal command button, a tool button usually doesn't show a text label, but shows an icon instead."

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

差别不大,

QToolButton 是 QtWidgets 模块中一组小部件的一部分,这些小部件主要围绕 QActionQMenuQToolBar 等。 QPushButton 只是一个按钮。因此,QToolButton 在幕后比 QPushButton 复杂得多。示例列表(不完整):

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

另请注意:

  • QToolButton 的默认内部边距比 QPushButton 小,反映出它旨在显示在紧密的行或网格中。 QPushButton 更适用于包含带有可选图标的文本的 "Ok"/"Close" 类型按钮。
  • 一个QToolButton一般应该有一个图标。 QPushButton 应该总是有文本。