按钮控件之1---QPushButton 标准按钮/普通按钮控件

news2024/11/13 13:03:40

1、父类QAbstractButton

2、QPushButton按钮,是Qt常用的控件之一,提供普通的按钮功能。

       通过信号槽机制接收触发信号并执行对应动作。
3、创建QPushButton

它有三个构造函数:

// 空对象
QPushButton(QWidget *parent = nullptr);
// 指定QPushButton显示的文字
QPushButton(const QString &text, QWidget *parent = nullptr);
// 指定QPushButton背景图片和显示的文字
QPushButton(const QIcon& icon, const QString &text, QWidget *parent = nullptr);

最常用的创建方法为:QPushButton(QWidget *parent = nullptr); 并且把它的父对象指定为它所在的窗口对象。

4、信号

它通过信号来接收特定的操作,信号包括:
信号    操作    描述
void pressed();    按下按钮    按钮被按下会发出此信号
void released();    释放按钮    按钮被释放(松开)会发出此信号
void clicked(bool checked = false);    点击按钮    按钮被点击(即按下后再释放)会发出此信号
void toggled(bool checked);    按钮状态被切换    按钮状态被切换时会发出此信号

这些信号在QAbstractButton中定义,也就是说继承于QAbstractButton的按钮类都可以使用这些信号。

由于QPushButton使用最多的操作是点击触发某个行为,所以它常用的信号为pressed和released, 当然也可以使用其他信号实现一些特殊功能。

5、使用

最常用的“点击”触发某个行为:

创建一个widget空窗口项目,

首先,切换到ui设计界面,拖动添加一个Push Button按钮,

可以在右侧修改按钮对象的名称,也可以使用默认的pushButton。

然后,回到widget.cpp文件,连接信号与槽,并实现槽函数(点击按钮要实现的动作)。

其中,connect(ui->pushButton, &QPushButton::clicked, this, &Widget::btnClicked);用于连接按钮信号与其槽函数。

void Widget::btnClicked()是其槽函数,按键clicked信号触发的动作实现在这个函数里。

以上是pushbutton按钮的使用方法,可以把信号换成pressed或released试一下。

6、按钮样式
6.1 按钮文字

通常我们通过按钮上的文字说明按钮的功能,可以使用setText()函数设置按钮文字。

ui->pushButton->setText("按钮");

如果想获取一个按钮的文字,可以使用text()函数:

QString btnText = ui->pushButton->text();

6.2 按钮大小

使用setGeometry函数可以设置按钮的大小及位置,setGeometry接收一个QRect矩形对象,用以指定按钮大小及位置,如下:

       pushButton->setGeometry(QRect(100, 100, 200, 50));

其中前两个参数指定位置(x, y),后两个参数指定大小(height, width)。

另外还可以使用resize函数单独设置按钮的大小:

ui->pushButton->resize(100, 100);

6.3 其他样式

其他样式主要使用void setStyleSheet(const QString& styleSheet); 函数设置样式表。

该函数传入QString类型的参数,是遵循 qss 语法的编码字符串。

qss 语法和 css 语法基本相同。

比如基本常用的设置按钮的背景色、按钮字体、矩形按钮圆角等。

ui->pushButton->setStyleSheet("QPushButton {"
                              "background-color: green;" // 按钮背景色
                              "font: bold 10px;"    // 按钮字体
                              "border-width: 2px;"    // 按钮边框线宽
                              "border-radius: 20px;" // 按钮边框圆角半径
                              "color: white;"     // 按钮文字颜色
                              "}");

效果如下:

                                       

合理配合大小与圆角的设置,还可以画出圆形按钮:

ui->pushButton->resize(140, 140);

//("QPushButton{}"); 大括号内部 每一行都包括在双引号内,由冒号设置按钮属性,并以分号结尾
ui->pushButton->setStyleSheet("QPushButton {"
                              "background-color: green;" // 按钮背景色
                              "font: bold 20px;"    // 按钮字体
                              "border-width: 1px;"    // 按钮边框线宽
                              "border-radius: 70px;" // 按钮边框圆角半径
                              "color: white;"      // 按钮文字颜色
                              "}");

  效果:

                                       

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Dots之008】TransformUsageFlags基础知识

一、基础介绍 在Baker中进行GetEntity对象的时候,需要填入TransformUsageFlags类型的参数;针对不同类型的参数,看看GameObject所转换后的IComponentData有什么差异; 演示代码: public class CubeAuthoring : MonoBe…

ITIL 4—创建、交付和支持—利用信息和技术创建、交付和支持服务

3.1 集成和数据共享 服务设计通常依赖于多个系统之间的集成(integration),在这种情况下,理解集成建模的不同层次相当重要。例如: 应用程序级 应用程序之间是相互交互的。企业级 已集成的应用程序共同提供价值。业务…

计算机/嵌入式入门教材资料

背景 自学计算机,首先我们要找到好的教材、教程,可以事半功倍。 目前,互联网上计算机资源较多,难的不再是寻找资源,而是筛选出质量比较高的资源。 基于笔者经验,推荐以下资源。 书籍 传统的书籍是纸质版…

云存储:实现数据备份与恢复的创新方法

文章目录 云存储的基本概念数据备份的创新方法自动化备份策略增量备份和版本控制多地点备份 数据恢复的创新方法快速数据恢复弹性扩展性数据验证和一致性 案例分析:AWS S3自动化备份策略增量备份和版本控制多地点备份快速数据恢复数据验证和一致性 结论 &#x1f38…

不会还有人排长队吃饭吧?用这招,快速搞定!

随着现代企业对员工福利和工作环境的关注不断增加,企业智慧食堂已经成为了企业管理的重要组成部分。 智慧收银系统的出现不仅使员工用餐变得更加便捷和高效,还提供了一种强大的管理工具,有助于企业更好地理解员工消费行为、优化食堂运营&…

安卓10创建文件夹失败

最近在做拍照录像功能,已经有了文件读写权限,却发现在9.0手机上正常使用,但是在安卓12系统上根本没有创建文件夹。经过研究发现,创建名称为“DCIM”的文件夹可以,别的又都不行。而且是getExternalStorageDirectory和ge…

史上最细 B+Tree 解读

前言: BTree 经过几十年的发展已经成为 OLTP 数据库的首选索引结构,深入分析开始前先介绍一些书籍给大家,BTree 的演进非常的复杂,有很多的大牛论文都做出了很关键的指导性作用,就算当前还是在不断探索优化的可能&…

js实现图形验证码

图形验证码起什么作用: 可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。 验证码一般是防止批量注册的,人眼看起来都费劲,何况是机器。不少…

让企业主们头疼的mkp勒索病毒,究竟有何来历,勒索病毒解密

mkp勒索病毒是一种比较常见的电脑病毒,它会对感染的电脑进行加密,并要求用户支付一定的赎金才能解锁。这种病毒已经引起了全球范围内的关注,因为它已经造成了严重的经济损失和电脑系统崩溃。 mkp勒索病毒是一种相对较新的病毒,但是…

【MySQL系列】索引的学习及理解

「前言」文章内容大致是MySQL索引的学习。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、索引概念二、从硬件角度理解2.1 磁盘2.2 结论 三、从软件角度理解四、共识五、索引的理解5.1 一个现象和结论5.2 对Page进行建模5.3 索引可以采用的数据结构5.…

大数据组件Sqoop-安装与验证

🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 个人主页:beixi 本文章收录于专栏(点击传送):【大数据学习】 💓💓持续更新中,感谢各位前辈朋友们支持…

NowCoder刷题 Python篇

NowCoder刷题 Python篇 Python入门 01 输入输出输入输出NP1 Hello World!NP2 多行输出NP3 读入字符串 01 输入输出 输入输出 NP1 Hello World! 参考代码: str Hello World! print(str)结果: NP2 多行输出 参考代码: str1 Hello World!…

上层应用开发与底层开发前途相比

底层开发和应用层开发都有自己的前途和发展方向,没有绝对的优劣之分。以下是对底层开发和应用层开发的一些观点:底层开发:优势:对计算机系统底层原理和技术有深入了解,能够进行系统级编程和优化,掌握底层技…

python爬虫—requests

一、安装 pip install requests 二、基本使用 1、基本使用 类型 : models.Response r.text : 获取网站源码 r.encoding :访问或定制编码方式 r.url :获取请求的 url r.content :响应的字节类型 r.status_code :响应…

在Mac终端使用unrar和rar 解压和压缩软件

1、首先从rarlab 网站下载 rar / unrar 工具 rarlab网站: https://www.rarlab.com/download.htm 2、解压缩下载的 tar.gz 压缩包(rarmacos-x64-623.tar.gz),在下载目录downloads下自动创建一个rar的目录,其…

应用案例 | 基于三维机器视觉的机器人麻袋拆垛应用解决方案

​Part.1 项目背景 在现代物流和制造行业中,麻袋的拆垛操作是一个重要且频繁的任务。传统的麻袋拆垛工作通常由人工完成,分拣效率较低,人力成本较高,现场麻袋堆叠、变形严重,垛型不规则、不固定,严重影响分…

利用随机数生成猜数字游戏【C语言】

猜数字游戏实现 游戏要求生成随机数rand 函数srand 函数time 函数 确定生成随机数的范围猜数字游戏实现 游戏要求 自动生成随机数的范围:0-99玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对&#x…

JavaScript Web APIs - 05 Window对象 、本地存储

Web APIs - 05 文章目录 Web APIs - 05js组成window对象定时器-延迟函数location对象navigator对象histroy对象本地存储(今日重点)localStorage(重点)sessionStorage(了解)localStorage 存储复杂数据类型 综…

unity面试题(基础篇)

事件函数的执行顺序 事件函数的执行顺序 - Unity 手册运行 Unity 脚本会按预定顺序执行大量事件函数。本页面将介绍这些事件函数,并说明它们的执行顺序。https://docs.unity.cn/cn/2019.4/Manual/ExecutionOrder.html 加载第一个场景 Awake:始终在任何 Start 函数之前并在实…

Linux(CentOS7)下如何配置多个Tomcat容器?

一、在 liunx 系统安装 jdk 1、安装jdk(yum install 安装) 查看是否系统是否自带jdk并卸载 rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 其中,GCJ是GNU的Java编译器,可以把java程序编译成本地代码,编译成功后的可…