【Qt 学习笔记】QWidget的enable属性 | API的介绍


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

QWidget的enable属性

文章编号:Qt 学习笔记 / 15

文章目录

  • QWidget的enable属性
    • 一、QWidget类的介绍
    • 二、什么是API
    • 二、enabled
      • 1. 简介
      • 2. API
      • 3. 代码示例
        • 3.1 示例1:使用代码创建两个按钮(禁用状态和可用状态)
        • 3.2 示例2:通过按钮2 切换按钮1 的禁用状态
        • 3.3 示例3:在图形化中创建按钮的时候, 设置按钮的状态
    • 三、QObject的objectName属性介绍


一、QWidget类的介绍

在打开Qt Creator右侧时,可以看到许多QWidget的各种属性,并且可以手动对其进行编辑。
这些属性皆可以通过Qt官方文档了解到,在Qt的学习中认识常用的一些重要属性即可
在这里插入图片描述


二、什么是API

API是Application Programming Interface(应用程序编程接口)的缩写,是一种定义了软件组件之间交互的协议和工具集。API通过提供一组预定义的函数、类、方法或规则,使得应用程序可以与不同的软件组件、服务或操作系统进行交互和通信。通过使用API,开发人员可以在自己的应用程序中调用其他软件组件的功能,以实现特定的功能或集成不同的服务。
在这里插入图片描述
API是什么详细解析


二、enabled

1. 简介

描述了一个控件是否处于“可用”状态,相对的概念就是“禁用”,用按钮举例如下图所示:
在这里插入图片描述
• 所谓 “禁用” 指的是该控件不能接收任何用户的输⼊事件, 并且外观上往往是灰色的.
• 如果⼀个 widget 被禁用, 则该 widget 的子元素也被禁用.

2. API

API说明
isEnabled()获取到控件的可用状态.
setEnabled设置控件是否可使用. true 表示可用, false 表示禁用.

3. 代码示例

3.1 示例1:使用代码创建两个按钮(禁用状态和可用状态)

在这里插入图片描述

widget.cpp代码

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton* button = new QPushButton("可用按钮",this);
    button->move(200,200);
    QPushButton* button2 = new QPushButton("禁用按钮",this);
    button2->setEnabled(false);
    button2->move(200,300);
}

Widget::~Widget()
{
    delete ui;
}


3.2 示例2:通过按钮2 切换按钮1 的禁用状态

在这里插入图片描述

在这里插入图片描述

文件代码:
在上述中使用图形化快速生成信号和槽,代码如下

//widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
//widget.cpp
#include "ui_widget.h"
#include<QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    qDebug()<<"按钮按下";
}

void Widget::on_pushButton_2_clicked()
{
     qDebug()<<"禁用按钮按下";
    bool enable=ui->pushButton->isEnabled();
    if(enable)
    {
        ui->pushButton->setEnabled(false);
    }
    else
    {
        ui->pushButton->setEnabled(true);
    }
}
3.3 示例3:在图形化中创建按钮的时候, 设置按钮的状态

在 Qt Designer 中创建按钮的时候, 可以设置按钮的初始状态是 “可用” 还是 “禁用” .
如果把 enabled 这⼀列的对钩去掉, 则按钮的初始状态就是 “禁⽤” 状态.
在这里插入图片描述


三、QObject的objectName属性介绍

在这里插入图片描述
在这里插入图片描述

  • QObject 是 QWidget 的父类. 里面最主要的属性就是 objectName .
    在一个 Qt 程序中, objectName相当于对象的身份标识, 彼此之间不能重复.
  • 在使用 Qt Designer 时, 尤其是界面上存在多个 widget 的时候, 可以通过objectName 获取到指定的 widget 对象.
  • Qt Designer 生成的 ui 文件, 本身是 xml 格式的. qmake 会把这个 xml 文件转换成 C++ 的.h⽂件(这个文件生成在 build 目录中), 构成⼀个ui_widget 类.
  • 每个 widget 的 objectName最终就会成为 ui_widget 类的属性名字. 最终这个类的实例, 就是 Ui::Widget *ui , 因此就可以通过形如 ui->pushButton 或者 ui->pushButton_2 这样的代码获取到界面上的 widget 对象了.

在这里插入图片描述

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

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

相关文章

【IC前端虚拟项目】验证环境方案思路和文档组织

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 对于mvu的验证环境,从功能角度就可以分析出需要搭建哪些部分,再看一下mvu的周围环境哈: 很明显验证环境必然要包括几个部分: 1.模拟idu发送指令; 2.模拟ram/ddr读写数据; 3.rm模拟mvu的行为; …

小白学Java成长日记特别篇

晚上好&#xff0c;各位小伙伴。今天给大家带来的是Java的输出补充篇&#xff0c;前两篇说了输出和输入的大概&#xff0c;但我没有详细讲它俩&#xff0c;因此这篇文章来详细的聊一聊它俩。那么废话不多说&#xff0c;我们赶紧进入正题。 首先讲一讲这个Java的输出吧。 输出格…

IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析

DHCP动态获取 IP 地址 我们的电脑通常都是通过 DHCP 动态获取 IP 地址&#xff0c;大大省去了配 IP 信息繁琐的过程。 客户端首先发起 DHCP 发现报文&#xff08;DHCP DISCOVER&#xff09; 的 IP 数据报&#xff0c;由于客户端没有 IP 地址&#xff0c;也不知道 DHCP 服务器的…

【C++第二阶段】文件操作

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 文件操作文件写入流程简单的demo写操作 文件读流程二进制写文件二进制读文件 文件操作 文件写入流程 写文件包括以下几个步骤 1.包含头文件 2.创建流对象 3.打开文件&#xff0…

重装系统前备份笔记

一、点查看自定义快捷键可以定义一些快速启动方式 然后用不习惯的快捷键也能在这里改 二、android studio 快捷键导出备份 导入方法&#xff1a; android studio &#xff0d;>file->import setting ->选择jar包即可 导出studio的设置方法&#xff1a; android …

【行业资讯】AI算力的需求推动光模块行业快速迭代

近期&#xff0c;由OpenAI发布的人工智能文生视频大模型Sora再次引起了不小的轰动&#xff0c;继ChatGPT之后&#xff0c;Sora的推出让AIGC&#xff08;生成式人工智能&#xff09;再度成为行业焦点&#xff0c;AI大模型的快速迭代升级对网络架构提出了更高要求&#xff0c;推动…

SpringBoot学习笔记三-原理分析

SpringBoot学习笔记三-原理分析 SpringBoot自动装配1.1 案例1.2 通过注解方式管理Bean1.3 小结1.4 Enable注解1.5 Import注解1.5.1 ImportSelector实现类1.5.2 导入ImportBeanDefinitionRegistrar 1.5 EnableAutoConfiguration1.6 案例 SpringBoot自动装配 当再pom.xml中导入对…

ceph集群搭建

一、前言 本次搭建ceph集群&#xff0c;使用centos7版本的系统&#xff0c;最高支持ceph版本为15.2.13&#xff0c;如需更高的版本需要使用centos8版本以上的系统&#xff0c;使用cephadm进行搭建&#xff0c;Cephadm 是一个用于部署、管理和监控 Ceph 集群的工具&#xff0c;它…

Towards IP Geolocation Using Delay and TopologyMeasurements(TBG)(2006年)

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:492 Katz-Bassett E, John J P, Krishnamurthy A, et al. Towards IP geolocation using delay and topology …

【鸿蒙开发】系统组件Column

Column组件 Column沿垂直方向布局的容器。 接口&#xff1a; Column(value?: {space?: string | number}) 参数&#xff1a; 参数名 参数类型 必填 参数描述 space string | number 否 纵向布局元素垂直方向间距。 从API version 9开始&#xff0c;space为负数或者…

洪水预警:如何通过数据可视化提前应对灾害

数据可视化在应对洪涝灾害问题中发挥着重要作用。洪涝灾害是一种常见而严重的自然灾害&#xff0c;给人们的生命、财产和生活带来了巨大的威胁和损失。而数据可视化技术通过将海量的数据转化为直观、易懂的图表、图像或地图等形式&#xff0c;帮助人们更好地理解洪涝灾害的发生…

PostgreSQL入门到实战-第十三弹

PostgreSQL入门到实战 PostgreSQL数据过滤(六)官网地址PostgreSQL概述PostgreSQL中IN命令理论PostgreSQL中IN命令实战更新计划 PostgreSQL数据过滤(六) 使用PostgreSQL IN运算符来检查值是否与列表中的任何值匹配 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容…

宁波宠物展|2024中国(宁波)国际宠物用品博览会

中国(宁波)国际宠物用品博览会 地点&#xff1a;宁波国际会展中心 时间&#xff1a;2024年11月14-16日 主办单位:凤麟展览(宁波)有限公司 协办单位:浙江省宠物产业协会 宁波市跨境电子商务协会 宁波欧德国际商务咨询服务有限公司 宁波扬扬会议展览有限公司 20000方展览…

大模型的实践应用20-一种内存高效微调技术LISA,效果比LoRA有显著提升

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下大模型的实践应用20-一种内存高效微调技术LISA&#xff0c;效果比LoRA有显著提升。LISA是一种新型的微调技术&#xff0c;全称为Layerwise Importance Sampled AdamW&#xff0c;由UIUC联合LMFlow团队提出。这项技术…

PUBG绝地求生29.1版本加速器推荐 免费低延迟不丢包加速器

绝地求生是一款多人大逃杀游戏&#xff0c;游戏有多张地图可供玩家选择&#xff0c;玩家空投跳伞至地图的各个角落&#xff0c;赤手空拳寻找武器&#xff0c;车辆以及物资&#xff0c;并在多种多样的地形中展开战斗&#xff0c;枪械角色身上可携带4种武器&#xff0c;分别是近战…

绝地求生29.1版本更新后进不去 绝地求生更新后进不去游戏怎么办

绝地求生游戏共有两种主要模式&#xff1a;第一人称模式和第三人称模式。在这两种模式下玩家可以分别进行单排&#xff0c;双排&#xff0c;四人组队或单人匹配四人团队模式。在进入游戏的时候&#xff0c;玩家可以在面板选择第一人称以及第三人称。在双排或四排等组队多人游戏…

为什么说无人机的发展是必然趋势???

随着科技的飞速发展&#xff0c;无人机已经逐渐从军事领域走进了普通人的生活&#xff0c;成为了我们探索天空、捕捉美好瞬间的新工具。今天&#xff0c;就让我带大家一起走进无人机的世界&#xff0c;感受它带来的无限魅力与可能性。 无人机&#xff0c;顾名思义&#xff0c;就…

C# 如何修改项目名称

目录 背景具体步骤1、Visual Studio中修改项目名和程序集名称以及命名空间2、修改项目文件夹名3、修改解决方案里项目的路径4、再次打开解决方案&#xff0c;问题解决步骤总结 名词解释解决方案&#xff08;Solution&#xff09;项目&#xff08;Project&#xff09;程序集&…

【千帆平台】百度智能云千帆AppBuilder应用探索益智游戏之猜物小游戏

欢迎来到《小5讲堂》 这是《千帆平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景AppBuilder控制台创建应用设置应用自动配置随机生成AI生成应…

线程池(详解)

目录 前言 线程池的好处 使用Executors 创建常见的线程池 工厂模式: 往线程池当中添加任务 常见线程类 ​编辑 线程池的参数介绍 线程池的工作流程 补充 前言 如果我们需要频繁的创建销毁线程,此时创建销毁线程的成本,不能忽视了 因此就可以使用线程池.提前创建好一波…