QT中的按钮控件Buttons介绍

目录

Buttons 按钮控件

1、常用属性介绍

 2、按钮介绍

2.1QPushButton 普通按钮

2.2QtoolButton 工具按钮

2.3Radio Button单选按钮

2.4CheckButton复选按钮

2.5Commam Link Button命令链接按钮

2.6Dialog Button Box命令链接按钮


Buttons 按钮控件

在Qt里,最常使用的控件就是按钮,有了按钮,就可以点击,从而响应事件,达到人机交互的效果。Qt 内置了六种按钮部件如下

  • QPushButton:下压按钮,继承 QAbstractButton 类,被 QCommandLinkButton 继承。常用于执行命令或触发事件
  • QToolButton:工具按钮,继承 QAbstractButton 类,是一种用于命令或者选项的可快速访问的按钮
  • QRadioButton:选择按钮,继承 QAbstractButton 类,通常成组出现,用于提供两个或多个互斥选项
  • QCheckBox:检查框,继承 QAbstractButton 类,与 RadioButton 的区别是选择模式,单选按钮提供多选一,复选按钮提供多选
  • QCommandLinkButton:命令链接按钮,继承 QPushButton 类,与 RadioButton 相似,用于在互斥选项中选择一项, 区别是CommandLinkButton 除带有正常文字描述文本外,默认携带一个箭头图标,表明按下按钮将打开另一个窗口或页面
  • QDialogButtonBox:对话框按钮,由 QDialogButtonBox 类包装而成,QDialogButtonBox 继承 QWidget,常用于对话框里自定义按钮,比如“确定”和“取消” 按钮

1、常用属性介绍

 2、按钮介绍

2.1QPushButton 普通按钮

1)控件位置:

Button->PushButton

2)控件介绍:

该控件继承自QButton类,通常用于执行命令或触发事件。

3)控件属性设置选项:

(1)name:该控件对应源代码中的名字。

(2)text:该控件对应图形界面中显示的名字。

(3)font:设置text的字体。

(4)enabled:该控件是否可用。

信号:
void clicked(bool checked = false)
void pressed()
void released()

函数接口: 
setText(const QString &) //设置按钮的文字 
text() const : QString   //获取按钮的文件 
ui->pushButton->setEnabled(false); //使按钮失效 
ui->pushButton->setEnabled(true); //使按钮生效
setIcon(const QIcon &) //给按钮设置一个小图标
    
//例子:
ui->pushButton->setIcon(QIcon("D:/Downloads/set.ico"));
ui->pushButton->setIconSize(QSize(40, 40));

2.2QtoolButton 工具按钮

1)控件位置:

Buttons->ToolButton

2)控件介绍:

工具按钮,继承自QButton类,是一种用于命令或者选项的可以快速访问的按钮,通常在ToolBar里面。工具按钮通常显示的是图标,而不是文本标签。ToolButton支持自动浮起。在自动浮起模式中,按钮只有在鼠标指向它的时候才绘制三维的框架。

3)控件设置选项:

(1)name:该控件对应源代码中的名称。

(2)text:工具按钮标签文本。

(3)font:设置工具按钮标签的字体。

(4)autoRaise:自动浮起是否生效。

(5)iconSet:提供显示在按钮上的图标的图标集。

(6)on:工具按钮是否为开。

(7)textLabel:工具按钮自动提示文本。

(8)usesTextLabel:自动提示文本textLabel是否工作,默认为false。

提示:使用工具按钮需要设置工具菜单

信号
void triggered(QAction *action)
​
//设置工具菜单 
void setMenu(QMenu *menu)
//显示菜单 
void showMenu() 
​
QMenu 菜单类: 
QAction *addAction(const QString &text)
 //设置一个菜单
    QMenu* m = new QMenu(ui->toolButton);

    //菜单栏
    m->addAction("西瓜");
    m->addAction("白菜");
    m->addAction("苹果");

    //把菜单设置到工具按钮中 
    ui->toolButton->setMenu(m);

//当点击时显示菜单 
void MainWindow::on_toolButton_clicked()
{
    ui->toolButton->showMenu(); //显示菜单
}

//获取触发信号 
void MainWindow::on_toolButton_triggered(QAction* arg1)
{
    ui->toolButton->setText(arg1->text());
}

QToolButton::QToolButton(QWidget *parent,const char *name = 0)
构造一个名字为name,父对象为parent的ToolButton。

QToolButton::QToolButton(const QIconset &iconSet,const QString &textLabel,const QString &grouptext,QObject *receiver,const char *slot,QToolBar *parent,const char *name = 0)
构造一个名称为name,父对象为parent(必须为QToolBar)的工具按钮。工具按钮将显示iconSet,工具提示为textLabel,状态条信息为grouptext,同时会将工具按钮链接到receiver对象的槽函数。

QToolBButton::QToolButton(ArrowType type,QWidget *parent,const char *name = 0)
此构造函数是把工具按钮构造成箭头按钮,type定义了箭头的方向,可用的值有LeftArrow、RightArrow、UpArrow、DownArrow。

void QToolButton::setAutoRaise(bool enable)
根据参数enable值设置按钮是否可自动浮起。

void QToolButton::setIcon(const QIconSet &)
设置显示在工具按钮上的图标。

void QToolButton::setOn(bool enable)[虚槽]
设置按钮是否为开,enable等于true则设置为开,否则设置为关。

void QToolButton::setTextLabel(const QString &)[槽]
设置按钮的提示标签。

QString QToolButton::textLabel()const
返回按钮的提示标签。

2.3Radio Button单选按钮

1)控件位置:

Buttons->RadioButton

2)控件介绍:

单选框,继承自QButton类,通常成组出现,用于提供两个或多个互斥选项。

3)控件属性设置选项:

(1)name:该控件对应源代码中所显示的名字。

(2)text:该控件对应图形界面中所显示的名字。

(3)font:设置text字体。

(4)enabled:该控件是否可用,可用为true,不可用为false。

(5)checked:用来设置或返回是否选中单选按钮,选中为true,未选中为false。

QRaidoButton::QRadioButton(const QString &text,QWidget *parent,const char *name = 0)
构造一个名称为name、父对象为parent并且文本为text的单选按钮。

bool QRadioButton::isChecked()const
返回是否选中单选按钮,选中时返回true,没有选中时返回false。

void QButton::setText(const QString &)
设置该按钮上显示的文本。

QString QButton::text()const
返回该按钮上显示的文本。

void QButton::stateChanged(int state)[signal]
当更改checked属性值时,将发射信号。

void QRadioButton::setChecked(bool check)[virtual slot]
设置单选按钮是否被选中为check。

2.4CheckButton复选按钮

1)控件位置:

Buttons->CheckBox

2)控件介绍:

复选框,继承自QButton,与RadioButton的区别是选则模式,单选框提供多选一,复选框提供多选多。

3)控件属性设置选项:

(1)name:该控件对应源代码中所显示的名字。

(2)text:该控件对应图形界面中所显示的名字。

(3)font:设置text字体。

(4)enabled:该控件是否可用,可用为true,不可用为false。

(5)checked:用来设置或返回是否选中单选按钮,选中为true,未选中为false。

QCheckBox::QCheckBox(const QString &text,QWidget *parent,const char *name = 0)
构造一个名称为name、父对象为parent并且文本为text的复选框。

QCheckBox::isChecked()const
选中该复选框,返回true,否则返回false。

void QButton::setText(const QString &)
设置该按钮上显示的文本。

QString QButton::text()const
返回该按钮上显示的文本。

void QButton::stateChange(int state)[signal]
当更改checked属性时,将发射这个信号。

void QCheckBox::setChecked(bool check)[槽]
设置复选框是否选中,状态为check的值。

2.5Commam Link Button命令链接按钮

1)控件位置:

Buttons->CommandLinkButton

2)控件介绍:

命令链接按钮,继承自QPushButton,用于在互斥选项中选择一项,CommandLinkButton除带有正常的按钮上的文字描述文本外,默认情况下,它也将携带一个箭头图标,表明按下按钮将打开另一个窗口或页面。

3)控件属性设置选项:

(1)name:该控件对应源代码中的名称。

(2)text:该控件对应图形界面中所显示的标签。

(3)font:设置text的字体。

(4)enabled:该控件是否可用。

(5)description:一个描述性的标签,以配合按钮上的文字。

QCommandLinkButton::QCommandLinkButton(QWidget *parent = 0)
构造一个父对象为parent的命令链接按钮。

QCommandLinkButton::QCommandLinkButton(const QString &text,QWidget *parent = 0)
构造一个父对象为parent、文本为text的命令链接按钮。

QCommandLinkButton::QCommandLinkButton(const QString &text,const QString &description,QWidget *parent = 0)
构造一个父对象为parent、文本为text和描述文本为description的命令链接按钮。

void QButton::clicked()[信号]
当单击该按钮时,发射信号。

void QButton::pressed()[信号]
当按下该按钮时,发射这个信号。

void QButton::released()[信号]
当释放该按钮时,发射这个信号。

void QButton::setText(const QString &)
设置改按钮上显示的文本。

QString QButton::text()cosnt
返回按钮上显示的文本。

2.6Dialog Button Box命令链接按钮

1)控件位置:

Buttons->ButtonBox

2)控件介绍:

按钮键,室友QDialogButtonBox类包装成的。

3)控件属性设置选项: 

(1)name:该控件对应源代码中的名称。

(2)font:设置text的字体。

(3)enabled:该控件是否可用。

(4)centerButtons:ButtonBox中的按钮是否居中布局,默认值为false。

(5)orientation:按钮布局方向,Qt提供QT::Horizontal和QT::Vertical两种。

(6)standardButtons:标准按钮集合。

QDialogButtonBox::QDialogButtonBox(QWidget *parent = 0)
构造一个按钮盒,父对象为parent。

QDialogButtonBox::QDialogButtonBox(QT::Orientation orientation,QWidget *parent = 0)
构造一个按钮盒,父对象为parent,排列方向为orientation,并且包含buttons。

QDialogButtonBox::QDialogButtonBox(StandardButton buttons,QT::Orientation orientation = QT::Horizontal,QWidget *parent = 0)
构造一个按钮盒,父对象为parent,排列方向为orientation。

void QDialogButtonBox::accepted()[signal]
当单击按钮盒里的定义为AcceptRole和YesRole的按钮时,发射信号。

void QDialogButtonBox::addButton(QAbstractButton *button,ButtonRole role)
向按钮盒里添加按钮button,定义按钮button的角色为role,如果role是无效的,则不添加按钮,如果按钮已添加,移除并在次添加为新角色。

QPushButton *QDialogButtonBox::addButton(StandarButton button)
向按钮盒中添加一个标准按钮button,并返回标准按钮。如果按钮无效,不添加,返回0.

QPushButton *QDialogButtonBox::addButton(const QString &text,ButtonRole role)
创建一个按钮的文本为text,以指定角色添加到按钮盒,并返回相应的按钮,如果role是无效的,则不创建,返回0.

void QDialogButtonBox::clear()
清空该按钮盒里的所有按钮。

void QDialogButtonBox::clicked(QAbstractButton *button)[signal]
当单击按钮盒里的按钮button时,发射这个信号。

void QDialogButtonBox::helpRequested()[signal]
当单击按钮盒里的定义为HelpRole的按钮时,发射这个信号。

void QDialogButtonBox::rejected()[signal]
当单击按钮盒里定义为RejectRole和NoRole的按钮时,发射这个信号。

void QDialogButtonBox::removeButton(QAbstractButton *button)
移除按钮盒里的按钮Button,但是不删除,设置它的父母为0.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/83046.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE进阶】SpringMVC

文章目录 一. 简单认识SpringMVC1. 什么是SpringMVC?2. SpringMVC与MVC的关系 二. SpringMVC1. SpringMVC创建和连接2. SpringMVC的简单使用2.1 RequestMapping 注解介绍2.2 RequestMapping支持的请求类型2.3 GetMapping 和 PostMapping 3. 获取参数3.1 传递单个参数3.2 传递对…

【1-3章】Spark编程基础(Python版)

课程资源:(林子雨)Spark编程基础(Python版)_哔哩哔哩_bilibili 第1章 大数据技术概述(8节) 第三次信息化浪潮:以物联网、云计算、大数据为标志 (一)大数据 大数据时代到来的原因…

如何编写一个通用的函数?

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 金句分享:…

Java 项目日志实例:Log4j2

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ Apache Log4j 2 是对 Log4j 的升级,与其前身 Log4j 1.x 相比有了显着的改进,并提供了许多 Logback 可用的改进,同时支持 JCL 以及 SLF4J…

Git:本地仓库创建和远程绑定

创建远程仓库 登录git网站,创建一个远程仓库 创建时可以选择仓库属性,公共/私有。仓库命名之类。创建完毕后可以在网站上看到仓库所在网址。 创建本地仓库 打开一个文件夹,鼠标右键Git Bash Here,打开git的命令行 git init//…

AWS security 培训笔记

云计算的好处 Amazon S3 (Storage) Amazon EC2 (Compute) 上图aws 的几个支柱:安全是其中一个啦 其中安全有几个方面 IAMdetection基础架构保护数据保护应急响应 关于云供应商的责任 data center 原来长这样 ,据说非常之隐蔽的 如果有天退役了&#xf…

wustojc2010两小时学完C语言

#include <stdio.h> int main() {int a,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d",a-b*c);return 0;}

selenium语法进阶+常用API

目录 浏览器操作 浏览器回退&#xff0c;前进 与刷新 浏览器窗口设置大小 浏览器设置宽高 浏览器窗口最大化 浏览器控制滚动条 信息打印 打印页面的标题和当前页面的URL 定位一组元素 鼠标和键盘事件 键盘 鼠标 下拉框操作 通过索引定位&#xff08;se…

Ubuntu20 ctrl+alt+T无法打开终端

事情是这样的&#xff0c;某天改了下python版本&#xff0c;发现linux默认打开终端的快捷键ctrlaltT寄了&#xff0c;网上给出的都是修改快捷键不出意外肯定没用 但是幸好我们是会分析的&#xff0c;我看到&#xff0c;很多回答说新增一个快捷键运行的命令是gnome-terminal&…

【ROS】话题通信--从理论介绍到模型实现(C++)

1.简单介绍 话题通信是ROS中使用频率最高的一种通信模式&#xff0c;话题通信是基于发布订阅模式的&#xff0c;也即:一个节点发布消息&#xff0c;另一个节点订阅该消息。像雷达、摄像头、GPS… 等等一些传感器数据的采集&#xff0c;也都是使用了话题通信&#xff0c;换言之…

Android开发基础知识总结(一)初识安卓Android Studio

一.基础理论知识 1.Linux相当于是地基。 MIUI&#xff0c;EMUI等操作系统&#xff0c;是基于安卓的改版——且裁掉了一部分Google的服务。 &#xff08;鸿蒙虽然是改版&#xff0c;但和安卓的架构基本上一致&#xff09; 2.Kotlin和Java都是JVM语言&#xff0c;必须先复习好…

6.RocketMQ之消费索引文件ConsumeQueue

功能&#xff1a;作为CommitLog文件的索引文件。 本文着重分析为consumequeue/topic/queueId目录下的索引文件。 1.ConsumeQueueStore public class ConsumeQueueStore {protected final ConcurrentMap<String>, ConcurrentMap<Integer>, ConsumeQueueInterface…

使用 Node.js 生成优化的图像格式

使用 Node.js 生成优化的图像格式 图像是任何 Web 应用程序的重要组成部分&#xff0c;但如果优化不当&#xff0c;它们也可能成为性能问题的主要根源。在本文中&#xff0c;我们将介绍如何使用 Node.js 自动生成优化的图像格式&#xff0c;并以最适合用户浏览器的格式显示它们…

Spring Clould 网关 - Gateway

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; Gateway网关-网关作用介绍&#xff08;P35&#xff09; Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2…

【数据挖掘】使用 Python 分析公共数据【01/10】

一、说明 本文讨论了如何使用 Python 使用 Pandas 库分析官方 COVID-19 病例数据。您将看到如何从实际数据集中收集见解&#xff0c;发现乍一看可能不那么明显的信息。特别是&#xff0c;本文中提供的示例说明了如何获取有关疾病在不同国家/地区传播速度的信息。 二、准备您的…

java.net.UnknownHostException 解决方法

原文链接&#xff1a;https://blog.csdn.net/qq_39390545/article/details/108755289 以下为复盘这里笔记 一般原因 1.服务器没网&#xff0c;调不到公网域名&#xff0c;无法解析出IP&#xff0c;从而无法识别host&#xff0c;导致无法连接&#xff1b; 2.网络端口映射做了…

STM32 F103C8T6学习笔记10:OLED显示屏GIF动图取模—简易时钟—动图手表的制作~

今日尝试做一款有动图的OLED实时时钟&#xff0c;本文需要现学一个OLED的GIF动图取模 其余需要的知识点有不会的可以去我 STM32 F103C8T6学习笔记 系列专栏自己查阅把&#xff0c;闲话不多&#xff0c;直接开肝~~~ 文章提供源码&#xff0c;测试工程下载&#xff0c;测试效…

华为ENSP网络设备配置实战6(简单的链路聚合)

题目要求 1、创建聚合组&#xff0c;添加端口成员 2、PC1网段为vlan10&#xff0c;PC2网段为vlan20 3、LSW1为核心网关设备&#xff0c;正确配置PC网关 4、PC1与PC2互通 解题过程 1.1、 按照拓扑图&#xff0c;各个设备起名 sys &#xff08;进入系统视图&#xff09; sy…

71 # 协商缓存的配置:通过内容

对比&#xff08;协商&#xff09;缓存 比较一下再去决定是用缓存还是重新获取数据&#xff0c;这样会减少网络请求&#xff0c;提高性能。 对比缓存的工作原理 客户端第一次请求服务器的时候&#xff0c;服务器会把数据进行缓存&#xff0c;同时会生成一个缓存标识符&#…

算法leetcode|72. 编辑距离(rust重拳出击)

文章目录 72. 编辑距离&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;二维数组&#xff08;易懂&#xff09;滚动数组&#xff08;更加优化的内存空间&#xff09; go&#xff1a;c&#xff1a;python&a…