zoukankan      html  css  js  c++  java
  • Qt之QToolButton

    简述

    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);

    更多参考

  • 相关阅读:
    git 基本使用
    docker下rabbitMQ高可用集群部署
    成长路上破局思维:工具化时间管理
    图解Elasticsearch的核心概念
    先森林后树木:Elasticsearch各版本升级核心内容必看
    JRebel 破解最简单的使用
    POA理论:不要被你的目标欺骗了你
    读了《跃迁-成为高手的技术》我的工资翻倍了
    微信头像地址失效踩坑记附带方案
    如何做程序员喜欢的测试妹子?
  • 原文地址:https://www.cnblogs.com/itrena/p/5938303.html
Copyright © 2011-2022 走看看