[Qt 基础-02] QToolButton
QToolButton
简介
根据QT官方帮助文档的翻译,QToolButton是一个特殊的按钮,提供对特定命令或选项的快速访问;QToolButton能够插入默认的action、能够插入menu、能够设置图标、设置文字;
他主要的属性有:
arrowType : Qt::ArrowType
autoRaise : bool
popupMode: ToolButtonPopupMode
toolButtonStyle : Qt::ToolButtonStyle
1. arrowType
这个属性是设置QToolButton是否显示箭头图标,而非正常的图标;这个属性默认是Qt::NoArrow,也就是不显示箭头。
如果需要设置这个属性,需要调用setArrowType,来指定需要设置的是哪一个样式。
void setArrowType(Qt::ArrowType type);
downArraw

upArrow

leftArrow

rightArrow

说到这个属性,就不得不提一句另外一个属性: toolButtonStyle,这个属性,标志了QToolButton要以一种什么样子的形式去显示图标和文字。
2. autoRaise
这个属性,从字面上翻译下来是自动抬起,但是具体没有感觉到点在哪里。这个属性默认是false的,但是具体所代表的意思,暂时不太清楚。
调用setAutoRaise来设置这个属性,函数原型如下,函数原型如下:
void setAutoRaise(bool enable);
下图是设置为true的效果:

3. popupMode
这个属性主要是设置QToolButton中的内部拓展,主要是更换一下menu的触发方式;

调用setPopupMode来设置这个属性,函数原型如下:
button->setPopupMode(QToolButton::mode);
这个属性同样也有三个:
DelayedPopup
这个模式为延迟展开,也就是说要长按左键,一段时间后才会展开菜单。

MenuButtonPopup
这个模式是单独拉出一个部分,用于点击展开菜单。

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

4. toolButtonStyle
这个属性设置了QToolButton的显示风格,上面的设置箭头就和这个属性息息相关。

默认是ToolButtonIconOnly,调用setToolButtonStyle来设置这个属性,函数原型如下:
void setToolButtonStyle(Qt::ToolButtonStyle style);
各个属性的实际效果为:
ToolButtonIconOnly
设置只显示图标;

ToolButtonTextOnly
设置只显示文字;

ToolButtonTextBesideIcon
设置文字显示在图标的旁边

ToolButtonTextUnderIcon
设置文字显示在图标下面

ToolButtonFollowStyle
图标和文字显示跟随Style
注意
我在使用QToolButton的时候,遇到了一个问题,那就是:
调用了setDefaultAction之后,之前设置的按钮上的文字,就消失不见了,后面我找到了原因,那就是你设置了默认的action之后,如果你要显示文字,你就要将文字设置给你的默认的action,也就是这样:
QAction action = new QAction(this);
action->setText("测试文字");
toolButton->setDefaultAction(action);
只有这样,才能够设置文字显示。
信号的连接
这个按钮的信号和槽基本和其他按钮差不多,但是有一个信号:
void triggred(QAction *action);
这个是当某个action触发时,发射的信号,可以根据这个信号,来实现对应的细节。
样式表的设计
这个的样式表,也基本和其他按钮差不多。
[Qt 基础-02] QToolButton的更多相关文章
- 基于C/S架构的3D对战网络游戏C++框架_04客户端详细设计与OpenGL、Qt基础
本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...
- javascript基础02
javascript基础02 1.数据类型 数据类型的描述在上篇的扩展中有写到链接 由于ECMAScript数据类型具有动态性,因此的确没有再定义其他数据类型的必要.这句话很重要. 如果以后再数据类型 ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
- java基础学习05(面向对象基础02)
面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
- 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字
084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...
- 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法
083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...
- 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法
082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...
- day32-线程基础02
线程基础02 3.继承Thread和实现Runnable的区别 从java的设计来看,通过继承Thread或者实现Runnable接口本身来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thre ...
- 小白之Python-基础中的基础02
Python-基础中的基础02 继续整理笔记,反复练习!fighting! -----------------华丽的分界线-------------变量:第一次出现叫做定义变量,再次出现为为该变量赋值 ...
随机推荐
- Qt编写安防视频监控系统46-视频存储
一.前言 在整个视频监控系统的开发迭代升级过程中,遇到过各种奇奇怪怪的需求,都是客户提出来的,有些需求很合理,有些就不那么的自然了,牢记这客户是上帝的原则,能满足的尽量满足.相信各位同行的研发人员都会 ...
- 在命令中输入信息创建maven项目
参考链接: 1.使用命令行创建maven web项目 2.Maven 三种archetype说明 3.maven创建项目时在generating project in interactive mode ...
- Optional的使用与解析
引言 今天在项目中看到了大量Optional的使用,之前我也了解过Optional,是Java8中的新特性,并且便利地为空指针问题提供了处理方法,可以避免繁琐的if/else. 但是并没有真正在项目中 ...
- NVM及NODE开发环境搭建
NVM及NODE开发环境搭建 1. 安装NVM 1.1 下载安装包 下载地址 1.2 安装 双击安装包,一路下一步即可.安装完成后在终端输入nvm version,能查到版本号说明安装成功了. 2. ...
- Linux 运维必备 150 个命令汇总
地址:https://www.linuxcool.com 线上查询及帮助命令 man:全拼manual,用来查看系统中自带的各种参考手册. help:用于显示shell内部命令的帮助信息. 文件和目录 ...
- C#定点执行任务测试案例
定时方法实现类 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text ...
- 常见的HTML特殊字符:对钩与叉号,五角星
表示"对钩","叉号"的特殊转义符号汇总: 对钩符号 编码 描述 叉号符号 编码 描述 ✓ ✓ CHECK MARK 手写体对钩(细) ✗ ✗ BALLOT X ...
- idea创建一个入门Spring Boot项目(controller层)使用Maven代码管理
springboot的优质开发体验,能够更快速的搭建生产环境的项目.这篇文章就是一个超级简单的入门springboot项目.包含了一些简单的理论和超简单Controller层 [工具] IDEA 全称 ...
- C :文件
一直没有系统学习过该章节,现参考<C语言程序设计 (第四版)谭浩强> C文件基本知识 什么是文件 文件名 文件的分类 文件缓冲区 文件类型指针 typedef struct { short ...
- ctfshow--web13 .user.ini上传和bak源码泄露
upload.php.bak源码泄露了 审计一下 点击查看代码 <?php header("content-type:text/html;charset=utf-8"); $ ...