• Qt应用开发(基础篇)——工具按钮类 QToolButton


    一、前言

           QToolButton类继承于QAbstractButton,该部件为命令或选项提供了一个快速访问按钮,通常用于QToolBar中。

            按钮基类 QAbstractButton

            QToolButton是一个特殊的按钮,一般显示文本,只显示图标,结合toolBar使用。它提供对特定命令或选项的快速访问,与普通的命令按钮相反,工具按钮通常不显示文本标签,而是显示一个图标。

            QToolButton工具按钮通常是QToolBar在使用addAction()创建新的QAction实例时创建的。也可以以与任何其他小部件相同的方式构造工具按钮,并将它们与布局中的其他小部件一起排列。

    1. QAction *act1 = new QAction("上");
    2. QAction *act2 = new QAction("左");
    3. QAction *act3 = new QAction("下");
    4. QAction *act4 = new QAction("右");
    5. QToolButton *btn1 = new QToolButton;
    6. btn1->setArrowType(Qt::UpArrow);
    7. QToolButton *btn2 = new QToolButton;
    8. btn2->setArrowType(Qt::LeftArrow);
    9. QToolButton *btn3 = new QToolButton;
    10. btn3->setArrowType(Qt::DownArrow);
    11. QToolButton *btn4 = new QToolButton;
    12. btn4->setArrowType(Qt::RightArrow);
    13. QToolBar *bar = new QToolBar(this);
    14. bar->setFixedWidth(500);
    15. bar->setFixedHeight(50);
    16. bar->addAction(act1);
    17. bar->addAction(act2);
    18. bar->addAction(act3);
    19. bar->addAction(act4);
    20. bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation),"");
    21. bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning),"");
    22. bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical),"");
    23. bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion),"");
    24. bar->addWidget(btn1);
    25. bar->addWidget(btn2);
    26. bar->addWidget(btn3);
    27. bar->addWidget(btn4);

            QToolButton可以设置icon图标,当按钮的功能不可用时使用禁用的像素图,当按钮自动抬起时,由于鼠标指针悬停在活动像素图上,显示活动像素图。也可以使用arrowType显示箭头图标,参考上文示例。

     二:QToolButton 类

    1、arrowType

            该属性用于是否是箭头图标,参考上文示例。

    1. Qt::ArrowType arrowType() const
    2. void setArrowType(Qt::ArrowType type)

    2、autoRaise

            该属性用于是否自动升高模式。在自动升高模式下,按钮在鼠标指向它时绘制3D帧。当在QToolBar中使用按钮时,该功能会自动打开,也就是说不要在QToolBar使用该按钮之前调用setAutoRaise,否则会被重置回去

    1. bool autoRaise() const
    2. void setAutoRaise(bool enable)

            在示例中添加设置toolbutton1的autoRaise为false。

    btn1->setAutoRaise(false);

    3、popupMode

            该属性表示按钮与弹出菜单的交互方式,默认为QToolButton::DelayedPopup。

    1. QToolButton::ToolButtonPopupMode popupMode() const
    2. void setPopupMode(QToolButton::ToolButtonPopupMode mode)
    QToolButton::ToolButtonPopupMode描述
    QToolButton::DelayedPopup在按住工具按钮一段时间后显示菜单
    QToolButton::MenuButtonPopup工具按钮显示一个特殊的箭头,以指示存在菜单。当按下按钮的箭头部分时,将显示菜单。
    QToolButton::InstantPopup按下工具按钮,菜单立即显示。在这种模式下,按钮本身的动作不会被触发

    4、toolButtonStyle

            该属性用于确定图标和文本的显示策略,默认为Qt::ToolButtonIconOnly。

    1. Qt::ToolButtonStyle toolButtonStyle() const
    2. void setToolButtonStyle(Qt::ToolButtonStyle style)
    Qt::ToolButtonStyle描述
    Qt::ToolButtonIconOnly只显示图标
    Qt::ToolButtonTextOnly只显示文本
    Qt::ToolButtonTextBesideIcon文本在图标旁边
    Qt::ToolButtonTextUnderIcon文本在图标下面
    Qt::ToolButtonFollowStyle跟随系统

    5、公共方法

    1)menu

            返回按钮绑定的菜单。

    QMenu *menu() const
     2)setMenu

            设置按钮绑定的菜单,菜单弹出策略由popupMode决定。

    void setMenu(QMenu *menu)
    3)defaultAction

            返回默认的动作Action。

    QAction *defaultAction() const
     4)setDefaultAction

            设置一个默认的action,这个动作可能定义了按钮的属性,比如文本、图标、工具提示等。

    void setDefaultAction(QAction *action)

    6、公共槽函数

      1)showMenu

            显示菜单。如果没有设置菜单,使用这个函数不会有任何反应。在菜单关闭之前,这个函数不会返回。

    void showMenu()

    7、信号

    1)triggered

            这个信号在给定的Action被触发时发出,参考上面的例子,我们定义了很多的Action。

            该操作还可以与用户界面的其他部分相关联,例如菜单项和键盘快捷键。以这种方式共享操作有助于使用户界面更加一致,并且通常可以减少实现的工作量。

    void triggered(QAction *action)
  • 相关阅读:
    Java泛型有点难
    入坑KeePass(四)KeePass通过坚果云WebDav同步方法
    基于Java+vue前后端分离失物招领信息交互平台设计实现(源码+lw+部署文档+讲解等)
    重新认识架构—不只是软件设计
    Selenium入门(二)Java整合Selenium实现模拟登录
    云计算采用的各种虚拟化技术比较
    【USRP】软件无线电基础篇:长波、中波、短波
    字节跳动测开实习生面试,拿15K过分吗?
    Java 多线程:锁(二)
    canvas 像素操作(图片像素操作)
  • 原文地址:https://blog.csdn.net/u014491932/article/details/132714832