Loading

[Qt 基础-02] QToolButton

QToolButton

简介

根据QT官方帮助文档的翻译,QToolButton是一个特殊的按钮,提供对特定命令或选项的快速访问;QToolButton能够插入默认的action、能够插入menu、能够设置图标、设置文字;

他主要的属性有:

  1. arrowType : Qt::ArrowType

  2. autoRaise : bool

  3. popupMode: ToolButtonPopupMode

  4. toolButtonStyle : Qt::ToolButtonStyle

1. arrowType

这个属性是设置QToolButton是否显示箭头图标,而非正常的图标;这个属性默认是Qt::NoArrow,也就是不显示箭头。
如果需要设置这个属性,需要调用setArrowType,来指定需要设置的是哪一个样式。

 void setArrowType(Qt::ArrowType type);
  1. downArraw
    在这里插入图片描述

  2. upArrow
    在这里插入图片描述

  3. leftArrow
    在这里插入图片描述

  4. rightArrow
    在这里插入图片描述

说到这个属性,就不得不提一句另外一个属性: toolButtonStyle,这个属性,标志了QToolButton要以一种什么样子的形式去显示图标和文字。

2. autoRaise

这个属性,从字面上翻译下来是自动抬起,但是具体没有感觉到点在哪里。这个属性默认是false的,但是具体所代表的意思,暂时不太清楚。
调用setAutoRaise来设置这个属性,函数原型如下,函数原型如下:

void setAutoRaise(bool enable);

下图是设置为true的效果:
在这里插入图片描述

3. popupMode

这个属性主要是设置QToolButton中的内部拓展,主要是更换一下menu的触发方式;
在这里插入图片描述

调用setPopupMode来设置这个属性,函数原型如下:

button->setPopupMode(QToolButton::mode);

这个属性同样也有三个:

  1. DelayedPopup
    这个模式为延迟展开,也就是说要长按左键,一段时间后才会展开菜单。
    在这里插入图片描述

  2. MenuButtonPopup
    这个模式是单独拉出一个部分,用于点击展开菜单。
    在这里插入图片描述

  3. InstantPopup
    设置这个展开模式之后,点击按钮,会立即展开菜单,同时,你默认添加的action将不会被触发,这和前两个不同,前两个都会触发默认添加的action。
    在这里插入图片描述

4. toolButtonStyle

这个属性设置了QToolButton的显示风格,上面的设置箭头就和这个属性息息相关。
在这里插入图片描述

默认是ToolButtonIconOnly,调用setToolButtonStyle来设置这个属性,函数原型如下:

    void setToolButtonStyle(Qt::ToolButtonStyle style);

各个属性的实际效果为:

  1. ToolButtonIconOnly
    设置只显示图标;
    在这里插入图片描述

  2. ToolButtonTextOnly
    设置只显示文字;
    在这里插入图片描述

  3. ToolButtonTextBesideIcon
    设置文字显示在图标的旁边
    在这里插入图片描述

  4. ToolButtonTextUnderIcon
    设置文字显示在图标下面
    在这里插入图片描述

  5. ToolButtonFollowStyle
    图标和文字显示跟随Style

注意

我在使用QToolButton的时候,遇到了一个问题,那就是:
调用了setDefaultAction之后,之前设置的按钮上的文字,就消失不见了,后面我找到了原因,那就是你设置了默认的action之后,如果你要显示文字,你就要将文字设置给你的默认的action,也就是这样:

QAction action = new QAction(this);
action->setText("测试文字");

toolButton->setDefaultAction(action);

只有这样,才能够设置文字显示。

信号的连接

这个按钮的信号和槽基本和其他按钮差不多,但是有一个信号:

void triggred(QAction *action);

这个是当某个action触发时,发射的信号,可以根据这个信号,来实现对应的细节。

样式表的设计

这个的样式表,也基本和其他按钮差不多。

posted @ 2022-09-03 19:46  师从名剑山  阅读(1104)  评论(0编辑  收藏  举报