QPushButton 理论总结
- 一、简述
- 二、常用要点
- 1. 快捷键相关
- 2. 信号相关
- 3. 默认按钮
- 3. 推荐使用
- 4. 重复功能
- 5. 菜单功能
一、简述
PushButton 按钮或CommandButton 按钮应该是图形用户界面中最常用的小部件。按下(单击)一个按钮就可以命令计算机执行某些操作或回答问题。典型的按钮包括 “确定”、“应用”、“取消”、“关闭”、“是”、“否”和“帮助”等等。
二、常用要点
1. 快捷键相关
按钮是矩形的,按钮内显示描述其操作的文本。
按钮可以显示文本和小图标(可选)。这些可以使用构造函数进行设置,并在以后使用 setText() 和 setIcon() 进行更改。如果按钮被禁用,文本和图标的外观将根据 GUI 样式进行操作,以使按钮看起来“禁用”。一般哈,一般不用 setIcon() 来设置图标,一般使用的是 QSS 来显示设置的。
【注】在 macOS 上,当按钮的宽度小于 50 或高度小于 30 时,按钮的角将从圆形变为方形。使用 setMinimumSize() 函数来防止此行为。
可以通过在文本中的首选字符前面加上 & 号来指定快捷键。例如:
QPushButton *button = new QPushButton("&Download", this);
在此示例中,快捷方式为 Alt+D。也可以用指定设置快捷键,参考
button->setIcon(QIcon(":/images/print.png"));
button->setShortcut(tr("Alt+F7"));
2. 信号相关
按钮在鼠标、空格键或键盘快捷键激活时发出 clicked() 信号。用槽函数来响应这个信号就行。按钮还提供不太常用的信号,例如 pressed() 和 release()。具体的信号还得看 QAbstractButton, 也就是 QPushButton 的父亲。
有兴趣可以看看我之前记录 Qt扫盲-QAbstractButton 笔记总结。
3. 默认按钮
对话框中的命令按钮默认为自动默认按钮,即,当它们收到键盘输入焦点时,它们会自动成为默认按钮。默认按钮是当用户在对话框中按 Enter 或 Return 键时激活的按钮。您可以使用 setAutoDefault() 更改此设置。请注意,自动默认按钮会保留一些额外的空间,这是绘制默认按钮指示器所必需的。如果你不希望按钮周围有这个空间,请调用setAutoDefault(false)。
像 save 就是一个默认按钮。
3. 推荐使用
这个我不太清楚,但是我大概懂官方的意思,其实就行Qt Asstant的上面搜索栏 的方形按钮,就是用的QToolButton。
当应用程序或对话框窗口在用户单击它时执行操作时,以及当小组件应具有带有文本标签的宽矩形形状时,请使用 QPushButton按钮。更改窗口状态而不是执行操作的小(通常是方形,下面就是)按钮不是 PushButton 按钮,而是 Tool 按钮。Qt为这些按钮提供了一个特殊的类(QToolButton)。
4. 重复功能
其实就是 按下按钮后,我们可以设置 按钮还是处于激活状态,就会定时的发送按下的信号之类的。其实就像滚动条中的箭头一样在按下时自动重复激活信号的按钮。这样滚动条就会一直滚动啦。
相关函数其实就是 setAutoRepeat() 和 setAutoRepeatInterval() 就行啦
5. 菜单功能
这个功能用的多,就是把一个菜单Menu 黏在 按钮上,有点像 QCombox
把 功能按钮 转换 为菜单按钮使用 setMenu() 方法将弹出菜单与按钮相关联。这样就会单击它们时会弹出选项菜单。以便多种选择。这样就会有一个小三角形 在 右侧 ,但是可以用 QSS 去掉的。