Qt之QToolButton

简介: 简述QToolButton类提供了用于命令或选项可以快速访问的按钮,通常可以用在QToolBar里面。工具按钮和普通的命令按钮不同,通常不显示文本,而显示图标。简述详细描述常用接口更多参考详细描述当使用QToolBar::addAction()添加一个新的(或已存在的)QAction至工具栏时,工具按钮通常被创建 。也可以用同样的

简述

QToolButton类提供了用于命令或选项可以快速访问的按钮,通常可以用在QToolBar里面。

工具按钮和普通的命令按钮不同,通常不显示文本,而显示图标。

详细描述

当使用QToolBar::addAction()添加一个新的(或已存在的)QAction至工具栏时,工具按钮通常被创建 。也可以用同样的方式构建工具按钮和其它部件,并设置它们的布局。

QToolButton支持自动浮起,在自动浮起模式中,只有在鼠标指向它的时候才绘制三维框架。当按钮被用在QToolBar里时,这个特征会被自动启用,可以使用setAutoRaise()来改变。

按钮的外观和尺寸可通过setToolButtonStyle()和setIconSize()来调节。当在QMainWindow的QToolBar里使用时,按钮会自动地调节来适合QMainWindow的设置(见QMainWindow::setToolButtonStyle() 和QMainWindow::setIconSize())。

工具按钮可以提供一个弹出菜单,使用setMenu()来进行设置。通过setPopupMode()来设置菜单的弹出模式,缺省模式是DelayedPopupMode,这个特征有时对于网页浏览器中的“后退”按钮有用,在按下按钮一段时间后,会弹出一个显示所有可以后退浏览的可能页面的菜单列表,默认延迟600毫秒,可以用setPopupDelay()进行调整。

常用接口

  • void setMenu(QMenu * menu)
    设置按钮的弹出菜单。和QPushButton用法类似,详见:Qt之QPushButton

  • void setPopupMode(ToolButtonPopupMode mode)
    设置弹出菜单的方式,默认情况下,设置为DelayedPopup(延迟弹出)。

    枚举QToolButton::ToolButtonPopupMode:

常量 描述
QToolButton::DelayedPopup 0 按下按钮一定时间后(超时风格依赖,参考:QStyle::SH_ToolButton_PopupDelay),显示菜单。一个典型案例:浏览器中工具栏的“后退”按钮。
QToolButton::MenuButtonPopup 1 这种模式下,工具按钮显示一个特殊的箭头以指示菜单是否存在,按下按钮的箭头部分时显示菜单。
QToolButton::InstantPopup 2 按下工具按钮时菜单显示,无延迟。这种模式下,按钮自身的动作不触发。


  • void setToolButtonStyle(Qt::ToolButtonStyle style)
    设置按钮风格,只显示一个图标,文本或文本位于图标旁边、下方。默认值是Qt::ToolButtonIconOnly。

    枚举Qt::ToolButtonStyle:

常量 描述
Qt::ToolButtonIconOnly 0 只显示图标
Qt::ToolButtonTextOnly 1 只显示文本
Qt::ToolButtonTextBesideIcon 2 文本显示在图标旁边
Qt::ToolButtonTextUnderIcon 3 文本显示在图标下边
Qt::ToolButtonFollowStyle 4 遵循QStyle::StyleHint


  • void setArrowType(Qt::ArrowType type)
    设置按钮是否显示一个箭头,而不是一个正常的图标。这将显示一个箭头作为QToolButton的图标。
    默认情况下,这个属性被设置为Qt::NoArrow。

    枚举Qt::ArrowType:

常量
Qt::NoArrow 0
Qt::UpArrow 1
Qt::DownArrow 2
Qt::LeftArrow 3
Qt::RightArrow 4


效果:

这里写图片描述

QToolButton *pButton = new QToolButton(this);
pButton->setArrowType(Qt::LeftArrow);
pButton->setText("Left Arrow");
// 文本位于图标之下
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pButton->setStyleSheet("QToolButton{border: none; background: rgb(68, 69, 73); color: rgb(0, 160, 230);}");

这里,我们可以通过样式表color来设置图标的颜色及文本色。

  • void setDefaultAction(QAction * action)
    设置默认的QAction,如果有一个默认的action,该action则会定义QToolButton的文本、图标、TooTip等按钮的属性。

这里写图片描述

QAction *pAction = new QAction(this);
pAction->setText(QString::fromLocal8Bit("一去丶二三里"));
pAction->setIcon(QIcon(":/Images/logo"));
pButton->setIconSize(QSize(48, 48));
pAction->setToolTip(QString::fromLocal8Bit("青春不老,奋斗不止!"));
pButton->setDefaultAction(pAction);
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

更多参考

目录
相关文章
|
7月前
|
存储 编译器 C++
QT之QFlags详解
QT之QFlags详解
229 0
|
Linux 调度 数据安全/隐私保护
Qt之QFtp
简述 QFtp 类提供了一个 FTP 协议的客户端实现。 该类提供了一个到 FTP 的直接接口,允许对请求有更多的控制。但是,对于新的应用程序,建议使用 QNetworkAccessManager 和 QNetworkReply,因为这些类拥有一个更简单、还更强大的 API。 简述 QFtp 工作流程 基本使用 连接并登录 FTP 服务器 切换工作目录 列出目
7168 1
|
存储 Cloud Native 前端开发
Qt QScrollArea使用
Qt QScrollArea使用
26 QT - 事件过滤器
26 QT - 事件过滤器
57 0
Qt之QScrollArea
简述 QScrollArea提供了一个滚动视图到另一个部件。 滚动区域用于显示一个画面中的子部件的内容。如果部件超过画面的大小,视图可以提供滚动条,这样就都可以看到部件的整个区域。 简述 基本使用 对齐方式 调整部件大小 手动调整 自动调整 获取与移除部件 获取 移除 基本使用 子部件必须使用setWidget()指定,例如: QLab
3255 0
Qt之QDateTimeEdit
简述 QDateTime类提供了一个部件,用于编辑日期和时间。 QDateTimeEdit允许用户编辑日期,通过使用键盘或箭头键来增加和减少日期和时间值。箭头键可以在QDateTimeEdit内进行部分移动,日期和时间的格式按照setDisplayFormat()设置的显示。 简述 基本使用 效果 源码 日期时间格式 效果 源码 日期时间范围 效果
2728 0
Qt之QDateEdit和QTimeEdit
简述 QDateEdit类提供了一个部件,用于编辑日期。QTimeEdit类提供了一个部件,用于编辑时间。 简述 详细描述 基本使用 各司其职 莫强求 更多参考 详细描述 QDateEdit和QTimeEdit均继承自QDateTimeEdit,许多特性和功能都有QDateTimeEdit提供。这些都是相关属性: QDateEdit da
2942 0
Qt之QSpinBox和QDoubleSpinBox
简述 QSpinBox和QDoubleSpinBox均派生自QAbstractSpinBox。 QSpinBox旨在处理整数和离散值(例如:月份名称),QDoubleSpinBox则用于处理浮点值。他们之间的区别就是处理数据的类型不同,其他功能都基本相同。 QDoubleSpinBox的默认的精度是2位小数,但可以通过setDecimals()来改变。 下面主要以QS
2017 0