QT系统学习系列:1.3 ToolButton(工具按钮)

2,997 阅读4分钟

@[TOC]


一. ToolButton 基础

ToolButton介绍

头文件:#include

qmake:QT +=widgets

继承于:QAbstractButton

无继承该类的类

在这里插入图片描述

该类提供了一个快速访问按钮,通常是内部使用的命令或是在QToolBar(工具栏),工具按钮是一种特殊按钮,可用于快速访问特定命令或选项。与普通命令(PushButton)按钮相反,工具按钮通常不显示文本标签(不是不能显示),而是显示图标,如wps的工具栏。

在这里插入图片描述 总之QToolButton一般与QToolBar一起使用的较多(可看ToolButton高级),而QPushButton则应用场合更为广泛。

ToolButton 构造函数

ToolButton的构造函数只有一个最基本的,不像PushButton具有三个。 ![在这里插入图片描述](img-blog.csdnimg.cn/20210126231… =900x) 但这并不意味着ToolButton不能使用文本和图标,相反的ToolButton比PushButton更常用于只显示图标而不显示文字的场景。 并且该类继承于QAbstractButton,QAbstractButton有的属性,它都有。


二. ToolButton 进阶

arrowType属性

该属性是按钮是否显示箭头从而代替普通图标,默认值是NoArrow,如果将其设置为DownArrow,则如下图所示,此外还有其他朝向三个方向箭头的值供选择。 在这里插入图片描述 注意:当设置该属性,按钮上已存在的图标,文字等都会被覆盖。

ui界面可设置: 在这里插入图片描述 代码可通过arrowType()和setArrowType(),访问和设置该属性。


autoRaise属性

该属性决定按钮是否自动凸出,默认值是False,与正常按钮一样,当设置为true时,如下图: 在这里插入图片描述 当鼠标划过时,会自动弹起。

ui界面可设置: 在这里插入图片描述 代码可通过autoRaise()和setAutoRaise(),访问和设置该属性。


popupMode属性

该属性可设置弹出菜单的方式,默认是DelayedPopup(值为0,按下按钮一定时间后,显示菜单)。 在这里插入图片描述

其余两个值分别为: MenuButtonPopup(值为1,这种模式下,工具按钮显示一个特殊的箭头以指示菜单是否存在,按下按钮的箭头部分时显示菜单。) 在这里插入图片描述

InstantPopup(值为2,按下工具按钮时菜单显示,无延迟。这种模式下,按钮自身的动作不触发。)

在这里插入图片描述 ui界面可设置: 在这里插入图片描述

代码可通过popupMode()和setPopupMode(),访问和设置该属性。


toolButtonStyle属性

该属性指定按钮显示模式,默认为ToolButtonIconOnly(仅显示图标)。 在这里插入图片描述

其他四个值分别为: ToolButtonTextOnly(只显示文字) 在这里插入图片描述

ToolButtonTextBesideIcon(文字在图标旁) 在这里插入图片描述

ToolButtonTextUnderIcon(文字在图标下) 在这里插入图片描述

ToolButtonFollowStyle(根据QStyle::StyleHint格式显示,我们没有设置StyleHint,所以和默认一样) 在这里插入图片描述 ui界面设置: 在这里插入图片描述

代码可通过toolButtonStyle()和setToolButtonStyle(),访问和设置该属性。


设置提示

ToolButton常用于显示图标,可以为按钮添加提示,当鼠标放在按钮上,显示提示。

    ui->toolButton->setToolTip("点击");
    ui->toolButton_2->setToolTip("滑过");
    ui->toolButton_3->setToolTip("按下");
    ui->toolButton_4->setToolTip("释放");

不只是ToolButton可以。


继承属性

在这里插入图片描述 该类继承于QAbstractButton类的属性,在QT系统学习系列:1.1 QAbstractButton(所有按钮的抽象基类,学习按钮之前必看该篇)已经列出,有需要,可点击学习。


关于ToolButton 按钮的简单美化

ToolButton按钮与PushButton按钮的基本类似,可以查看QT系统学习系列:1.2 PushButton(常规按钮)关于按钮的美化。


三. ToolButton 高级

ToolBar工具栏和ToolButton工具按钮的应用

TooButton常和ToolBar(工具栏)合用,我们来看一下。

首先创建一个主窗口ui,默认带有一个TooBar(工具栏),在ui界面拖动四个ToolButton按钮,并为四个按钮添加图标。 ![在这里插入图片描述](img-blog.csdnimg.cn/20210128130… =500x) 现在我们添加代码,让这四个按钮出现在工具栏上面。

//ui->toolBar 是我们的工具栏
    ui->toolBar->addWidget(ui->toolButton);
    ui->toolBar->addWidget(ui->toolButton_2);
    ui->toolBar->addWidget(ui->toolButton_3);
    ui->toolBar->addWidget(ui->toolButton_4);

运行,效果如下。至于工具栏的详细讲解,可以参考QT系统学习系列:1.2 ToolBar(工具栏)(未更) 在这里插入图片描述


ToolButton 菜单

	//创建菜单
    QMenu * men = new QMenu();
    //为菜单添加,不屑于文字,还可以添加图标,分割线。
    men->addAction("跟花狗学QT");
    men->addAction("关注CSDN花狗Fdog");
    //将菜单添加到按钮下
    ui->toolButton->setMenu(men);

在这里插入图片描述 如果你和我一样操作了,却点不出菜单,不妨想一想是不是上面讲过的popupMode属性默认是DelayedPopup,需要长按才可以显示菜单哦