QT--QPushButton设置文本和图标、使能禁能、信号演示

按钮除了可以设置显示文本之外,还可以设置图标

文本

可以获取和设置按钮上显示的文本

// 获取和设置按钮的文本
QString text() const
void setText(const QString &text)

该属性,既可以在 Qt 设计师右侧的属性窗口中修改,也可以在代码中动态地获取和修改

图标

可以获取和设置按钮上显示的图标

// 获取和设置按钮的图标
QIcon icon() const
void setIcon(const QIcon &icon)

样式表

样式表可以设置包括文本颜色、背景色、边框、字体等很多样式

// 获取和设置样式表
// 这是继承自QWidget类的属性和方法
// 只要继承自QWidget类的控件,都有该属性
QString styleSheet() const
void setStyleSheet(const QString &styleSheet)

样式表既可以在 Qt 设计师右侧的属性窗口中修改,也可以在代码中动态地获取和修改

信号

按钮在按下和抬起的过程中,会发射多个信号。

// 当按钮被点击(按下并抬起)时,发送该信号,其中带有一个默认参数
// 对于QPushButton 通常不需要传递这个默认参数
// 对于可选中/取消选中的按钮,比如复选框QCheckBox、单选框QRadioButton 可以通过该参数,获取其是否选中
void clicked(bool checked = false);

// 当按钮被按下时,发送该信号
void pressed();

// 当按钮被抬起时,发送该信号
void released();

资源和图案如何放在上一节,这里不再叙述,直接上例子:

实现上面的功能:

#include "QPushButton.h"
#include<qdebug.h>
QPushButtonTest::QPushButtonTest(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);

    // 1. 设置文本和图标, 槽函数采用了匿名函数,也可以使用普通函数
    connect(ui.on_startNo_clicked, &QPushButton::clicked, this, [this]() {
        QString s = ui.on_startNo_clicked->text(); // 获取按钮的字符
        if (s == "启动")
        {
            // 设置文本和字体
            ui.on_startNo_clicked->setText("停止");
            ui.on_startNo_clicked->setFont(QFont("黑体", 16));

            // 设置图标和图标大小
            ui.on_startNo_clicked->setIcon(QIcon(":/icon/停止.svg"));
            ui.on_startNo_clicked->setIconSize(QSize(48,48));

        }
        else
        {
            // 设置文本和字体
            ui.on_startNo_clicked->setText("启动");
            ui.on_startNo_clicked->setFont(QFont("黑体", 16));

            // 设置图标和图标大小
            ui.on_startNo_clicked->setIcon(QIcon(":/icon/运行.svg"));
            ui.on_startNo_clicked->setIconSize(QSize(32, 32));
        }
        });

    //2.使能禁能
    connect(ui.on_connect_clicked, &QPushButton::clicked, this, [this]() {
        QString s = ui.on_connect_clicked->text();
        if (s == "连接")
        {
            ui.on_connect_clicked->setText("断开连接");
            ui.on_sendCommd_clicked->setEnabled(true);
        }
        else
        {
            ui.on_connect_clicked->setText("连接");
            ui.on_sendCommd_clicked->setEnabled(false);
        }
        });

    // 3. 信号演示
    
    connect(ui.on_signalShow_clicked, &QPushButton::pressed, this, [this]() {
        qDebug() << " pressed ";
        });
    connect(ui.on_signalShow_clicked, &QPushButton::clicked, this, [this]() {
        qDebug() << " clicked ";
        });
    connect(ui.on_signalShow_clicked, &QPushButton::released, this, [this]() {
        qDebug() << " released ";
        });


}

QPushButtonTest::~QPushButtonTest()
{}

 

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

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

相关文章

深度学习调参技巧总结

文章目录 深度学习调参技巧总结1.寻找合适的学习率2.优化算法选择3.模型对不同超参数的敏感性4.训练技巧参考 深度学习调参技巧总结 1.寻找合适的学习率 学习率&#xff08;Learning Rate, LR&#xff09;是机器学习模型训练中极其重要的超参数。它直接影响模型的收敛速度和最…

数据结构——排序(2)

数据结构——排序(2) 文章目录 数据结构——排序(2)前言&#xff1a;1.快速排序&#xff08;非递归版本&#xff09;基本步骤&#xff1a;代码实现 2.归并排序算法思想&#xff1a;核心步骤&#xff1a;代码实现&#xff1a;特征总结&#xff1a; 3.计数排序&#xff08;非比较…

【深度学习系统】Lecture 2 - ML Refresher / Softmax Regression

一、问题的理解方式 首先&#xff0c;什么是数据驱动的编程&#xff1f;面对经典的MNIST数据集识别任务&#xff0c;传统的编程思维和数据驱动的编程思维有何不同&#xff1f; 传统编程思维&#xff1a; 通常从明确的问题定义和具体的算法开始。对于 MNIST 数据集识别任务&a…

AI时代的神器,解锁 PPT 制作新体验--分享使用经验

背景&#xff1a;探讨人们在使用AI工具时&#xff0c;最喜欢的和认为最好用的工具是哪些&#xff0c;展示AI技术的实际应用和影响。 说明&#xff1a;本文分析的AI技术的实际应用是制作PPT的AI工具。>>快速访问本文的AI工具<< 你好&#xff0c;我是三桥君 你有没有…

网络抓包06 - Socket抓包

TCP thread {val socket Socket("xx.xxx.xxx.xx", 8888)socket.soTimeout 3000val os socket.getOutputStream()Log.e("Socket", "class name ${os::class.java.canonicalName}")os.write(0x00)}运行代码&#xff0c;得知 OutputStream 是 S…

Python 工具库每日推荐 【sqlparse】

文章目录 引言SQL解析工具的重要性今日推荐:sqlparse工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:SQL查询分析器案例分析高级特性自定义格式化处理多个语句扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 Python工具库每日推荐 专…

文件的读写、FileStream

//现在在desktop\10.13文件夹下的读写文件,由上知空空如也。 if (File.Exists(@"C:\Users\11442\Desktop\10.13\FILE.txt")) { File.Delete(@"C:\Users\11442\Desktop\10.13\FILE.txt"); File.Create(@"C:\Users\11442\Desktop\10.13\FIL…

(IOS)VMware虚拟机上安装win10系统(超详细)

简介 虚拟机是一种软件实现的计算机系统&#xff0c;可以在现有的操作系统平台上运行一个或多个虚拟的操作系统。它通过在主机操作系统上创建一个虚拟的硬件平台&#xff0c;并在其上运行一个完整的操作系统&#xff0c;来模拟一个真实的物理计算机。虚拟机可以提供一种隔离的…

多线程代码案例

案例一.单例模式 单例模式是一种设计模式;类似于棋谱,有固定套路,针对一些特定场景可以给出一些比较好的解决方案; 只要按照设计模式来写代码,就可以保证代码不会太差,保证了代码的下限; --------------------------------------------------------------------------------…

接口测试面试题含答案

1、解释一下正向和逆向测试。 正向测试&#xff1a;针对接口设计预期的功能和行为&#xff0c;验证接口是否按照预期工作。 逆向测试&#xff1a;针对错误输入、不合理的条件或非预期的使用方式&#xff0c;验证接口是否能够适当地处理这些情况并提供合理的错误处理。 2、什…

Windows11下 安装 Docker部分疑难杂症(Unexpecter WSL error)

装了大半天Docker desktop终于装好了&#xff0c;网上有的主流教程就不复述了&#xff0c;主要说一下网上没有的教程。 以下是遇到的问题&#xff1a; 首先&#xff0c;启用或关闭Windows确保里面与虚拟机有关的几个都要选上 没有Hyper-V参考此文 但是我这里都勾选了&#x…

Unity/VS 消除不想要的黄色警告

方法一&#xff1a;单个消除 在要关闭的代码前一行写上#pragma warning disable 警告代码编码 在要关闭代码行下面一行写上#pragma warning restore 警告代码编码 精准的关闭指定地方引起的代码警告&#xff0c;不会过滤掉无辜的代码 #pragma warning disable 0162,1634HandleL…

react实现实时计时的最简方式

js中时间的处理&#xff0c;不借助于moment/dayjs这样的工具库&#xff0c;原生获取格式化的时间&#xff0c;最简单的实现方式可以参考下面这样。 实现效果 代码实现 封装hooks import { useState, useEffect } from "react";export function useCountTime() {c…

C语言笔记 14

函数原型 函数的先后关系 我们把自己定义的函数isPrime()写在main函数上面 是因为C的编译器自上而下顺序分析你的代码&#xff0c;在看到isPrime的时候&#xff0c;它需要知道isPrime()的样子——也就是isPrime()要几个参数&#xff0c;每个参数的类型如何&#xff0c;返回什么…

图解C#高级教程(五):枚举器和迭代器

本章主要介绍 C# 当中枚举器、可枚举类型以及迭代器相关的知识。 文章目录 1. 枚举器和可枚举类型2. IEnumerator 和 IEnumerable 接口2.1 IEnumerator 接口2.2 IEnumerable 接口 3. 泛型枚举接口4. 迭代器4.1 使用迭代器创建枚举器4.2 使用迭代器创建可枚举类4.3 迭代器作为属…

uni-app 打包成app时 限制web-view大小

今天对接一个uni-app的app 内置对方h5 web-view的形式 需要对方在web-view顶部加点东西 对方打的app的web-view始终是全屏的状态&#xff0c;对方表示做不到我要的效果 emmmmmm。。。。。。 于是乎 自己搭了个demo 本地h5跑起来审查了下代码&#xff0c;发现web-view是给绝对定…

IP地址与CDN提升网络速度

视频流媒体、在线游戏、或是电商购物&#xff0c;互联网在我们的工作生活中愈加不可或缺&#xff0c;人们对于网络的加载速度要求也越来越严苛。而IP地址与CDN的协同工作&#xff0c;对于互联网速度增加与稳定起这重大的作用。 一、CDN的工作原理 CDN是由分布在全球各地的服务…

基于JAVA+SpringBoot+Vue的旅游管理系统

基于JAVASpringBootVue的旅游管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈喽兄…

使用XML实现MyBatis的基础操作

目录 前言 1.准备工作 1.1⽂件配置 1.2添加 mapper 接⼝ 2.增删改查操作 2.1增(Insert) 2.2删(Delete) 2.3改(Update) 2.4查(Select) 前言 接下来我们会使用的数据表如下&#xff1a; 对应的实体类为&#xff1a;UserInfo 所有的准备工作都在如下文章。 MyBatis 操作…

【论文速看】DL最新进展20241015-目标检测、图像超分

目录 【目标检测】【图像超分】 【目标检测】 [ECCV2024] LaMI-DETR: Open-Vocabulary Detection with Language Model Instruction 论文链接&#xff1a;https://arxiv.org/pdf/2407.11335 代码链接&#xff1a;https://github.com/eternaldolphin/LaMI-DETR 现有方法通过利…