Qt 实现当某个变量的值发生改变时修改按钮控件的参数

2023-11-05

// mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>
#include <QPushButton>

class MyWidget : public QWidget
{
    Q_OBJECT  //允许类中使用信号和槽的机制
    
signals:
    void variableChanged(bool value);
public:
    myWidget(QWidget *parent = 0);
    ~myWidget();
	
	QPushButton *btn1;
    QPushButton *btn2;
    bool is_Auth;

private slots:
    void handleVariableChanged(bool value);
};

#endif // MYWIDGET_H
#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    //认证按钮
    btn1 = new QPushButton;
    btn1->setParent(this);
    btn1->setText("开始认证");
    btn1->move(45,260);
    btn1->setStyleSheet("QPushButton{background-color:rgb(49,109,247); color:black}");
    //btn1->setStyleSheet("background-color:rgb(128,128,128); color:black");
    btn1->setEnabled(true);

    //断线按钮
    btn2 = new QPushButton;
    btn2->setParent(this);
    btn2->setText("断开连接");
    btn2->move(160,260);
    //btn2->setStyleSheet("QPushButton{background-color:rgb(201,89,99); color:black}");
    btn2->setStyleSheet("background-color:rgb(128,128,128); color:black");
    btn2->setEnabled(false);



    //设置窗口固定大小
    setFixedSize(290,300);
    is_Auth = false;

    connect(this, SIGNAL(variableChanged(bool)), this, SLOT(handleVariableChanged(bool)));
}

MyWidget::~MyWidget()
{
	
}

void myWidget::handleVariableChanged(bool value)
{
    if(value)
    {
        qDebug()<< "PushButton enable";
        btn1->setStyleSheet("background-color:rgb(128,128,128); color:black");
        btn1->setEnabled(false);
        btn2->setStyleSheet("QPushButton{background-color:rgb(201,89,99); color:black}");
        btn2->setEnabled(true);
    }
    else
    {
        qDebug()<< "PushButton disable";
        btn1->setStyleSheet("QPushButton{background-color:rgb(49,109,247); color:black}");
        btn1->setEnabled(true);
        btn2->setStyleSheet("background-color:rgb(128,128,128); color:black");
        btn2->setEnabled(false);
    }
}

后续实现实现时当is_Auth值发送变化时,执行emit variableChanged(is_Auth);即可

//伪代码如下
if(...)
{
	is_Auth = false;
    emit variableChanged(is_Auth);
}
else
{
	is_Auth = true;
    emit variableChanged(is_Auth);
}

效果大致如下:

初始状态:is_Auth = false;
在这里插入图片描述

满足条件时状态:is_Auth = true;
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 实现当某个变量的值发生改变时修改按钮控件的参数 的相关文章

  • QByteArray 到整数

    正如您可能从标题中看出的那样 我在转换QByteArray为一个整数 QByteArray buffer server gt read 8192 QByteArray q size buffer mid 0 2 int size q siz
  • 使用 qbs 构建 qt 应用程序

    我想知道在 Linux 上使用 qbs 编译 构建和创建 Android Qt 应用程序的步骤 我拥有所有必要的工具 目前我可以使用 qmake 创建 apk Qbs 目前不支持构建 Qt Android 应用程序 Qbs v1 4 中引入
  • PyQt5 使动态小部件可点击并将参数传递给另一个函数

    我正在尝试制作动态小部件并使它们可点击 通过单击一个小部件 它应该将动态值传递给其他小部件 我尝试过 sender 和其他访问小部件的选项 但没有任何效果 所有小部件都从最后一个小部件发送信息 下面是代码 import sys from P
  • 为按钮控件 Qt Widgets 样式表定义多种样式

    如何在一个样式表中为一种控件定义多种样式 这样以后开发人员就可以选择控件应该是什么样子的样式 例如 我需要定义两种样式QPushButton 用于普通按钮 左侧 和操作按钮 右侧 对于第一个按钮 我编写了以下样式 QPushButton b
  • 使用 qt 创建和使用共享库

    我对共享库很陌生 所以我对如何创建 使用共享库有疑问 我正在使用 Qt Creator 和 qt 5 4 2 以及 Microsoft Visual C 11 0 编译器 在我的项目中 我需要创建一个 dll 它从外部库调用函数 有 h l
  • 通过信号/槽将 QVector 从工作线程传递到主线程

    目前 我在将 QVector 传递到线程之间时遇到一些麻烦 目前我有一个主线程 GUI Thread 和一个频繁发出 QVector 数组的工作线程 在向量内直接发出数据之前看起来不错 接收者是主线程中的一个槽 但该槽接收到的数据是乱码 这
  • 仅具有年/月视图的 PyQt 日历

    在 Qt Designer 中 QDateTimeEdit 具有日历视图选项 通过设置显示格式 我只能显示月 年 但是 当用户单击视图时 它会自动显示每日日历 有没有办法让它只显示月 年日历 为了形象地解释一下 Windows 日历具有与
  • QtCreator:找不到有效的套件

    在 Windows 7 上仅安装了 IDE 我想创建一个纯 C 项目 非 QT 项目 但是我收到错误 未找到有效的套件 当我单击 选项 gt 套件 时 我看到桌面 默认 套件 并且没有显示任何错误 我收到错误是因为我没有安装 Qt 库吗 如
  • QComboBox:仅在展开时显示图标

    从 正常 开始QCombobox 我想要一个QCombobox仅在展开时显示图标 但在折叠时不显示图标 我找到了类似问题的几个答案 但它们都显示了更复杂情况的代码 而我还没有设法提炼出它的核心 我见过两种方法 QListView或使用QIt
  • Android 上的 QT 应用程序中的 java.nio.channels.OverlappingFileLockException

    我的 QT 应用程序崩溃了java nio channels OverlappingFileLockException例外Nokia 1具有以下调用堆栈的设备 FATAL EXCEPTION dbp processing com googl
  • Qt 覆盖小部件快捷方式(窗口快捷方式)

    我有一个 Qt 应用程序 其中在 Qt Designer 表单操作中定义了多个窗口快捷方式 这些快捷键效果很好 直到焦点位于处理相同组合的小部件上 覆盖我的窗口快捷键 时按下它们 我想要相反的行为 窗口快捷方式覆盖聚焦的小部件快捷方式 我尝
  • 无法在 Qt Creator 中检索调试输出

    在 Windows 上的 Qt Creator 中 qDebug 语句不起作用 并且输出窗口中出现以下消息 无法检索调试输出 如何解决 如果多个 Qt Creator 实例处于活动状态 则可能会出现此问题 要解决此问题 只需关闭 Qt Cr
  • 用Qt制作无边框窗口

    我是 Qt C 新手 我下载了最新的 Windows 版本 做了一些教程 非常棒 我看到了 Qt 框架具有的一些样式选项 而且它很棒 但现在我需要构建我的应用程序 其主窗口 形式 是用没有矩形边框 无边框 的图像设计 蒙皮的 我怎样才能用Q
  • 找不到 PySide SVG 图像格式?

    我正在使用 Eclipse 的 PyDev 插件与 Qt 集成 我安装了 PySide 但在使用 SVG 图像格式时遇到问题 我知道当我运行我的应用程序时 格式位于C Python27 Lib site packages PySide pl
  • 交叉引用标头中出现“未终止条件指令”错误

    有两个类在其标头中彼此相关 绘图标记 ifndef PLOTMARKER H define PLOTMARKER H include
  • 在 Qt 5.12 的 OpenCV dll 上找不到入口点

    TLDR 将 OpenCV 与 QT MingW 链接会使应用程序在调试时崩溃 但不会在发布时崩溃 我正在尝试在基于 Qt 的大型多操作系统项目中使用 OpenCV 我已经轻松地为 Mac 和 Linux 构建了 OpenCV 但在 Win
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • Qt:如何制作二维插值颜色字段?

    我是 C 的初学者 尤其是与图形相关的 我想为我的图形视图制作一个动画背景 如下所示 梯度场气流 http www engineering leeds ac uk cfd research images untitled JPG 该图片表现
  • Qt QPushButton 样式表悬停

    我有以下按钮样式表 QPushButton hover background qlineargradient x1 0 y1 0 x2 0 y2 1 stop 0 0 ffd9aa stop 0 5 ffbb6e stop 0 55 fea
  • Qt: 主窗口->show();不显示主窗口

    在下面的代码中 我创建一个窗口 调用window show 但窗口直到之后才显示window gt iterateSolution 叫做 几乎就好像 app exec 是显示窗口的函数 我对 Qt 很陌生 所以我不知道发生了什么 inclu

随机推荐

  • Rust- FFI (Foreign Function Interface)

    Foreign Function Interface FFI is a mechanism that allows code written in one language to call code written in another l
  • 手写ArrayStack底层 实现代码

    一 接口的定义 package p1 接口 public interface Stack
  • 华为OD机试真题B卷 Java 实现【统计字符】,附详细解题思路

    一 题目描述 输入一行字符 分别统计出包含英文字母 空格 数字和其它字符的个数 数据范围 输入的字符串长度满足 1 le n le 1000 1 n 1000 二 输入描述 输入一行字符串 可以有空格 三 输出描述 统计其中英文字符 空格字
  • ECharts画动态仪表盘+柱状图(ajax获取+循环画图)

    出来工作几个月了 整理下最近学的的东西 刚刚才开通博客 第一篇就先画仪表盘 柱状图 有什么写的不好的地方 请大家多多指教 jsp中首先要引用几个文件 xx xxx js 是我js代码存放的文件
  • C++标准库异常类

    C 标准库异常类继承层次中的根类为exception 其定义在exception头文件中 它是C 标准库所有函数抛出异常的基类 exception的接口定义如下 namespace std class exception public ex
  • 记一个复制黏贴的功能想法(黏贴剪切板中的数字自增,复制黏贴自增)

    起因 照例是要写起因的 起因非常之简单 不知道大家有没有遇到过需要输入连续的 id 101 id 110 这类数字的时候 这个时候能做的基本上是复制100 黏贴100 然后手动改 101 102 在我的脑海里 除了使用excel 其他没有很
  • 【华为机试真题 JAVA】执行时长-100

    编程题目 100分 执行时长 2021 2022 Q2考试题 时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 本题可使用本地IDE编码 不能使用本地已
  • 面对对象--结构体和类的区别

    一 面向对象 结构体和类的区别 结构体是一种值类型 而类是引用类型 值类型用于存储数据的值 引用类型用于存储对实际数据的引用 那么结构体就是当成值来使用的 类则通过引用来对实际数据操作 构使用栈存储 Stack Allocation 而类使
  • 利用腾讯云函数隐藏C2服务器

    1 简介 腾讯云函数 可以为企业和开发者提供无服务器执行环境 无需购买和管理服务器 只需要在腾讯云上使用平台支持的语言编写核心代码并设置代码运行的条件 即可在腾讯云基础设施上弹性 安全地运行代码 C2服务器所有流量通过腾讯云函数进行转发 由
  • Html04_input框中的value/key/placeholder到底是什么

    1 input框中的value值到底是什么 value 属性为 input 元素设定值 input标签有很多类型 也就是type 对于不同的输入类型 value 属性的用法也不同 以下是一些常用type的说明 text 文本框 input默
  • 513. Find Bottom Left Tree Value

    Given a binary tree find the leftmost value in the last row of the tree Example 1 Input 2 1 3 Output 1 Example 2 Input 1
  • Flutter:自定义组件的上下左右弹出层

    背景 最近要使用Flutter实现一个下拉菜单 需求就是 在当前组件下点击 其下方弹出一个菜单选项 如下图所示 实现起来 貌似没什么障碍 在Flutter中本身就提供了弹出层PopupMenuButton组件和showMenu方法 于是开搞
  • 复习之linux存储的基本管理

    一 实验环境的设定 1 实验环境的搭建 本节内容只需要一台虚拟机 westosa reset重置虚拟机 保证实验环境的纯净 配置网络实现ssh连接 重置虚拟机后 配置网络 设定ip 172 25 254 100 保证与主机可以通信 实现ss
  • Ant Design的layout布局 --- 根据路由配置渲染

  • python基础3——流程控制

    文章目录 一 操作符 1 1 比较操作符 1 2 逻辑操作符 1 3 成员操作符 1 4 身份操作符 二 流程控制 2 1 条件判断 2 2 循环语句 2 2 1 for循环 2 2 2 while循环 2 3 continue与break
  • 谷歌Colab云端部署Stable Diffusion 进行绘图

    系列文章目录 本地部署Stable Diffusion教程 亲测可以安装成功 Stable Diffusion界面参数及模型使用 文章目录 系列文章目录 前言 一 Colab是什么 二 操作步骤 1 找到对应的脚本 2 在谷歌Colab里执
  • wait WNOHANG 僵尸进程

    什么是僵尸进程 首先内核会释放终止进程 调用了exit系统调用 所使用的所有存储区 关闭所有打开的文件等 但内核为每一个终止子进程保存了一定量的信息 这些信息至少包括进程ID 进程的终止状态 以及该进程使用的CPU时间 所以当终止子进程的父
  • Apollo如何通知/订阅主题topic

    转自 https blog csdn net u012423865 article details 80024870 导读 众所周知 Apollo是基于ROS开发的 所以其底层也是基于消息的机制进行节点通信的 但是它在ROS的基础上做了一些
  • 渗透相关问题(一)

    1 什么是kali kali Linux是基于Debian的Linux发行版 最早是设计用于数字取证的操作系统 被称为BackTrack 基于ubuntu kali集成了精心挑选的渗透测试和安全审计的工具 供渗透测试和安全设计人员使用 也可
  • Qt 实现当某个变量的值发生改变时修改按钮控件的参数

    mywidget h ifndef MYWIDGET H define MYWIDGET H include