QT学习一

news2025/5/30 15:26:19

对于选择qmake还是cmake,现在写的暂时先用qmake

1.命名规范和快捷键

2.按钮控件常用API

    //创建第一个按钮
    QPushButton * btn = new QPushButton;
    //让btn对象 依赖在mywidget窗口中
    btn->setParent(this);

    //显示文本
    btn->setText("第一个按钮");

    //创建第二个按钮 按照控件大小创建窗口
    QPushButton * btn2 = new QPushButton("第二个按钮",this);

    //移动btn2按钮
    btn2->move(100,100);

    //重设btn2按钮大小
    btn2->resize(100,100);

    //重置窗口大小
    resize(600,400);

    //设置固定窗口大小
    setFixedSize(600,400);

    //设置窗口标题
    setWindowTitle("第一个窗口");

3.对象树

        当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。一定程度上简化了内存回收机制。

4.信号和槽

//需求 点击我的按钮 关闭窗口
//参数1 信号的发送者 参数2 发送的信号(函数的地址) 参数3 信号的接受者 参数4 处理的槽函数

connect(myBtn, &MyPushButton::clicked , this , &MyWidget::close);
// connect(myBtn, &QPushButton::clicked , this , &QWidget::close);//也可以使用父类的地址
classIsOver();//发出信号    


void Widget::classIsOver()
{
    //下课函数,调用后 触发老师饿了的信号
    // emit zt->hungry();
    emit zt->hungry("宫保鸡丁");
}

5.自定义信号和槽

//teacher.h中的teacher类中

signals:
    //自定义信号 写道signals下
    //返回值是void,只需要声明,不需要实现
    //可以有参数,可以重载
    void hungry();

    void hungry(QString foodName);//重载的函数


//student.h中的student类中

public slots:
    //早期QT版本 必须要写到public slots下,高级版本可以写到public或全局下
    //返回值void,需要声明,也需要实现
    //可以有参数,可以发生重载
    void treat();

    void treat(QString foodName);//重载的函数



//调用重载的函数时

    //连接带参数的信号和槽 出现了重载
    //指针 -> 地址
    //函数指针 -> 函数地址
    void(Teacher::*teacherSignal)(QString) = &Teacher::hungry;//函数指针
    void(Student::*studentSlot)(QString) = &Student::treat;//函数指针
    connect(zt, teacherSignal , st , studentSlot );
    classIsOver();

 调用QString时,输出带双引号的处理方式

    // qDebug() << "请老师吃饭,老师要吃:" << foodName;//输出结果为 请老师吃饭,老师要吃: "宫保鸡丁"
    //QString -> char * 先转成QByteArray ( .toUtf8() )再转char * ( .data() )
    qDebug() << "请老师吃饭,老师要吃:" << foodName.toUtf8().data();
    //输出结果为 请老师吃饭,老师要吃: 宫保鸡丁 //不带引号

6.信号连接信号

      //点击一个 下课的按钮 , 再触发下课
    QPushButton * btn = new QPushButton("下课",this);
    this->resize(600,400);

    //点击按钮 触发下课
    // connect(btn , &QPushButton::clicked, this, &Widget::classIsOver);

  // 无参信号和槽连接
    void(Teacher::*teacherSignal2)(void) = &Teacher::hungry;//函数指针
    void(Student::*studentSlot2)(void) = &Student::treat;//函数指针
    connect(zt, teacherSignal2 , st , studentSlot2 );

    //信号连接信号
    connect(btn , &QPushButton::clicked, zt, teacherSignal2);

断开信号

  disconnect(btn , &QPushButton::clicked, zt, teacherSignal2);//只有前边的函数名不一样

7.lambda表达式

    //利用lambda表达式 实现点击按钮 关闭窗口
    QPushButton * btn2 = new QPushButton("关闭",this);
    btn2->move(200,0);
    
    
    connect(btn2,&QPushButton::clicked,this,[=](){

        emit zt->hungry("宫保鸡丁");
    });
    //lambda表达式常用的形式就是[=](){}

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

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

相关文章

黑马点评Reids重点详解(Reids使用重点)

目录 一、短信登录&#xff08;redisseesion&#xff09; 基于Session实现登录流程 &#x1f504; 图中关键模块解释&#xff1a; 利用seesion登录的问题 设计key的具体细节 整体访问流程 二、商户查询缓存 reids与数据库主动更新的三种方案 缓存穿透 缓存雪崩问题及…

小米2025年校招笔试真题手撕(一)

一、题目 小A每天都要吃a,b两种面包各一个。而他有n个不同的面包机&#xff0c;不同面包机制作面包的时间各不相同。第i台面包机制作a面包 需要花费ai的时间&#xff0c;制作b面包则需要花费bi的时间。 为能尽快吃到这两种面包&#xff0c;小A可以选择两个不同的面包机x&…

《软件工程》第 11 章 - 结构化软件开发

结构化软件开发是一种传统且经典的软件开发方法&#xff0c;它强调将软件系统分解为多个独立的模块&#xff0c;通过数据流和控制流来描述系统的行为。本章将结合 Java 代码示例、可视化图表&#xff0c;深入讲解面向数据流的分析与设计方法以及实时系统设计的相关内容。 11.1 …

Neo4j(三) - 使用Java操作Neo4j详解

文章目录 前言一、创建项目二、导入依赖三、节点和关系数据打印四、创建节点与关系五、查询数据方法六、更新数据方法七、删除节点与关系方法八、合并数据方法九、完整代码1. 完整代码2. 项目下载 前言 本文介绍通过 Java 操作 Neo4j 图数据库的完整流程。主要涵盖开发环境搭建…

蓝桥杯3503 更小的数

问题描述 小蓝有一个长度均为 n 且仅由数字字符 0∼9 组成的字符串&#xff0c;下标从 0 到 n−1&#xff0c;你可以将其视作是一个具有 n 位的十进制数字 num&#xff0c;小蓝可以从 num 中选出一段连续的子串并将子串进行反转&#xff0c;最多反转一次。 小蓝想要将选出的子…

算法-全排列

1、全排列函数的使用 举例&#xff1a;{1,2,3}的全排列 #include<iostream> #include<bits/stdc.h> using namespace std; typedef long long ll; int main(){ll a[3] {1, 2, 3};do{for (ll i 0; i < 3;i){cout << a[i] << " ";}cout…

最好用的wordpress外贸主题

产品展示独立站wordpress主题 橙色的首页大banner外贸英文wordpress主题&#xff0c;适合用于产品展示型的外贸网站。 https://www.jianzhanpress.com/?p8556 Machine机器wordpress模板 宽屏简洁实用的wordpress外贸建站模板&#xff0c;适合工业机器生产、加工、制造的外贸…

2025 河北ICPC( D. 金泰园(二分)-- C.年少的誓约(公式转化))

文章目录 2025 河北ICPCD. 金泰园&#xff08;二分&#xff09;C.年少的誓约(公式转化)总结 2025 河北ICPC 题目链接&#xff1a; Attachments - The 9th Hebei Collegiate Programming Contest - Codeforces sdccpc20250522 - Virtual Judge 赛时&#xff1a;5道 D. 金泰…

mongodb语法$vlookup性能分析

1 场景描述 mongodb有两个表department和user表&#xff0c; department表有_id,name,level&#xff0c;表有记录169w条 user表有_id,name,department_id&#xff0c;表有记录169w条&#xff0c;department_id没有创建索引&#xff0c;department_id是department的_id。 现…

晶圆隐裂检测提高半导体行业效率

半导体行业是现代制造业的核心基石&#xff0c;被誉为“工业的粮食”&#xff0c;而晶圆是半导体制造的核心基板&#xff0c;其质量直接决定芯片的性能、良率和可靠性。晶圆隐裂检测是保障半导体良率和可靠性的关键环节。 晶圆检测 通过合理搭配工业相机与光学系统&#xff0c…

在 LangChain 中集成 Mem0 记忆系统教程

目录 简介环境准备基础配置核心组件说明1. 提示模板设计2. 上下文检索3. 响应生成4. 记忆存储 工作流程解析使用示例关键特性完整代码与效果 简介 Mem0 是一个强大的记忆系统&#xff0c;可以帮助 AI 应用存储和检索历史对话信息。本教程将介绍如何在 LangChain 应用中集成 Me…

华润电力招聘认知能力测评及性格测评真题题库考什么?

华润电力招聘测评包含逻辑推理、数字推理、语言理解三大类型的问卷。共计58题。测评限时60分钟。其中逻辑推理、数字推理、语言推理分别限时20分钟&#xff0c;如逾时未完成相关测试&#xff0c;测试将自动终止&#xff0c;请注意测评时间。为了确保测评的连贯性&#xff0c;建…

Maven Profile在插件与依赖中的深度集成

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

手机平板等设备租赁行业MDM方案解析

目录 引言&#xff1a;MDM 在租赁行业的重要性日益凸显 用户场景&#xff1a;租赁公司面临的主要挑战 1. 设备丢失、逾期未还 2. 手动配置和恢复效率低 3. 非授权使用频繁 4. 时区设置混乱影响运维 5. 缺乏实时监管能力 EasyControl MDM&#xff1a;租赁设备的远程管控…

如何调试CATIA CAA程序导致的CATIA异常崩溃问题

问题背景&#xff1a;我采用CATIA CAA编写了一个界面的小程序&#xff0c;功能运行成功&#xff0c;但是每次运行完&#xff0c;关闭CATIA的时候&#xff0c;都会弹出这个对话框&#xff0c;这个对话框的意思是CATIA运行崩溃&#xff0c;点击确定后&#xff0c;CATIA就会意外关…

SQL查询效率以及索引设计

1. SQL 查询效率与数据库缓冲池机制 1.1. 数据库缓冲池&#xff08;Buffer Pool&#xff09; 磁盘 I/O 需要消耗的时间很多&#xff0c;而在内存中进行操作&#xff0c;效率则会高很多&#xff0c;为了能让数据表或者索引中的数据随时被我们所用&#xff0c;DBMS 会申请占用内…

day37打卡

知识点回顾&#xff1a;浙大疏锦行 过拟合的判断&#xff1a;测试集和训练集同步打印指标模型的保存和加载 仅保存权重保存权重和模型保存全部信息checkpoint&#xff0c;还包含训练状态 早停策略 作业&#xff1a;对信贷数据集训练后保存权重&#xff0c;加载权重后继续训练50…

分布式缓存:证明分布式系统的 CAP 理论

文章目录 Pre一、分布式系统背景与特点二、CAP 三要素详解三、CAP 定理的反证证明四、CP 架构与 AP 架构对比典型场景 五、CAP 理论在系统设计中的应用六、总结 Pre 分布式缓存&#xff1a;CAP 理论在实践中的误区与思考 分布式缓存&#xff1a;BASE理论实践指南 分布式 - 从…

软件设计师“面向对象设计”真题考点分析——求三连

一、考点分值占比与趋势分析 综合知识历年考察统计 年份考题数分值占比考察重点2018334%继承类型、设计原则2019445.3%多态实现、类关系2020556.7%设计模式应用、接口隔离2021334%消息通信、封装特性2022668%开闭原则、组合模式2023556.7%模板方法、适配器模式2024445.3%单一…

AI大模型学习二十八、ACE-Step:生成式AI音乐大模型简介与安装(一)

一、说明 先来一首创作的歌&#xff1a; 在大模型和生成式AI模型大规模发达的今天&#xff0c;利用大模型生成音乐也是其中一个重要的发展方向。今天我们就介绍一个这样的音乐生成模型ACE-Step&#xff0c;可基于关键字和歌词生成歌曲&#xff1b;基于歌曲生成伴奏等等功能。 …