详细说明
按钮或命令按钮可能是图形用户界面中最常用的部件。按下(点击)按钮可命令计算机执行某些操作或回答问题。典型的按钮有确定、应用、取消、关闭、是、否和帮助。
命令按钮是矩形的,通常会显示一个说明其操作的文本标签。快捷键可以通过在首选字符前加上 "ampersand "来指定。例如
QPushButton *button = new QPushButton("&Download", this);
本例中的快捷键是Alt+D。有关详情,请参阅QShortcut 文档(要显示真正的分号,请使用"&&")。
按钮会显示文字标签,也可选择显示小图标。这些都可以通过构造函数进行设置,并在以后使用setText() 和setIcon() 进行更改。如果按钮被禁用,文本和图标的外观将根据 GUI 风格进行调整,使按钮看起来 "禁用"。
通过鼠标、空格键或键盘快捷键激活按钮时,按钮会发出clicked() 信号。连接到该信号可执行按钮的操作。按钮还提供一些不常用的信号,例如pressed() 和released()。
默认情况下,对话框中的命令按钮是自动默认按钮,也就是说,当它们接收到键盘输入焦点时,就会自动成为默认按钮。默认按钮是用户在对话框中按下 Enter 或 Return 键时激活的按钮。您可以使用setAutoDefault() 进行更改。请注意,自动默认按钮保留了一点额外空间,这是绘制默认按钮指示器所必需的。如果您不希望按钮周围有这些空间,请调用setAutoDefault(false)。
由于按钮部件非常重要,在过去的十年中,它已经有了很多变化。现在,微软风格指南显示了大约十种不同的 Windows 按钮状态,文中还暗示,如果考虑到所有功能的组合,还会有几十种。
最重要的模式或状态有
可用或不可用(灰色显示,禁用)。
标准按钮、切换按钮或菜单按钮。
开或关(仅适用于切换按钮)。
默认或正常。对话框中的默认按钮通常可以用回车键或回车键 "点击"。
是否自动重复。
按下与否。
一般来说,当应用程序或对话窗口在用户点击时执行操作(如应用、取消、关闭和帮助),以及当部件应该是宽长方形并带有文本标签时,应使用按压式按钮。改变窗口状态而非执行操作的小型、典型的正方形按钮(如QFileDialog 右上角的按钮)不是命令按钮,而是工具按钮。Qt XML 为这些按钮提供了一个特殊的类 (QToolButton)。
如果您需要切换行为(请参阅setCheckable()) 或像滚动条中的箭头一样按下时自动重复激活信号的按钮(请参阅setAutoRepeat()) ,那么命令按钮可能不是您想要的。如有疑问,请使用工具按钮。
注意: 在 macOS 上,当推动按钮的宽度小于 50 或高度小于 30 时,按钮的边角会从圆形变为方形。请使用setMinimumSize() 函数防止出现这种情况。
菜单按钮是命令按钮的一种变体。这些按钮提供的不只是一个命令,而是多个命令,因为点击后会弹出一个选项菜单。使用setMenu() 方法可将弹出菜单与按钮关联起来。
按钮的其他类别还有选项按钮(参见QRadioButton )和复选框(参见QCheckBox )。
在 Qt 中,QAbstractButton 基类提供了大部分模式和其他 API,QPushButton 则提供了图形用户界面逻辑。有关 API 的更多信息,请参见QAbstractButton 。