QToolButton 理论总结
- 1. 概述
- 2. 使用场景
- 3. 外观样式
- 4. 菜单用途
1. 概述
ToolButton 是一种特殊按钮,用于快速访问 特定命令或选项。与普通PushButton 按钮常用显示内容不同,ToolButton 通常不显示文本标签,而是显示图标。当然,也不是说不能用QPushButton 来显示图标之类的,这个只是官方推荐,我一把也是只用QPushButton来做了大部分的按钮功能。这个你熟悉哪种其实就用哪种就行啦。
2. 使用场景
ToolButton 通常在使用 QToolBar::addAction() 创建新的 QAction 实例或使用 QToolBar::addAction() 添加到工具栏时创建。也可以像任何其他小部件一样构造ToolButton ,并将它们与布局中的其他微件一起排列。
ToolButton 的一个经典用途是选择工具; 就像Windows 自带的 画图程序中的“钢笔”工具。也是通过使用QToolButton 作为切换按钮来实现,因为可以选择就会使用到 setCheckable() 函数 和 checked 属性。
3. 外观样式
QToolButton 支持自动提升。在自动抬起模式下,仅当鼠标指向按钮时,该按钮才会绘制 3D 帧。当在 QToolBar 中使用按钮时,该功能会自动打开。使用 setAutoRaise() 更改这个自动抬升的属性。QToolButton的鼠标响应确实和QPushButton 有些不同,但是还是可以通过 QSS 来把样式给做到类似的。
ToolButton 的图标设置为 QIcon。这样就可以为禁用状态和活动状态指定不同的像素图。禁用的像素图在按钮的功能不可用时使用。当按钮自动升起时,将显示活动的像素图,因为鼠标指针悬停在其上。这个其实就是体现在下面 icon的区别上,不同状态下可以选择不同的图标。但这种我们是不推荐的,用代码写死很简单,但扩展很麻烦,最后都是用QSS 来做的
按钮的外观和尺寸可通过 setToolButton Style() 和 setIconSize() 进行调整。
当在 QMainWindow 的 QToolBar 中使用时,该按钮会自动调整为 QMainWindow 的设置(请参阅 QMainWindow::setToolButton Style() 和 QMainWindow::setIconSize())。其实就是会使用QToolButton的父容器的属性。
ToolButton 还可以显示箭头符号,而不是图标,该符号使用 arrowType 指定。Arrow 和图标是互斥的,一次只能显示一个。
效果如下,我们也可以设置图标的位置,注意,没有那个图标在右、下的功能哦。QPushButton也有这种功能。只是没有那个 Arrow功能。
4. 菜单用途
ToolButton 可以在弹出菜单中提供其他选项。可以使用 setMenu() 设置弹出菜单。使用 setPopupMode() 配置 QToolButton的菜单显示模式。
默认模式是延迟弹出模式,有时与Web浏览器中的“后退”按钮一起使用。长按住按钮一段时间后,会弹出一个菜单,显示可能跳转到的页面列表。超时取决于样式,需要自己再查查 QStyle::SH_ToolButton _PopupDelay。效果其实就像下面浏览器的一样。
Qt Assistant 的工具栏其实就用QToolButton 来做的