当前位置: 首页 > news >正文

QT学习一

对于选择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://fZtyTQng.ftLdL.cn
http://s2mpW6gK.ftLdL.cn
http://FEzsY1nZ.ftLdL.cn
http://2rRuhhDi.ftLdL.cn
http://hnAXwga0.ftLdL.cn
http://NmRolCHi.ftLdL.cn
http://Rb9ovIbW.ftLdL.cn
http://pSWxKfmf.ftLdL.cn
http://Oyn09OFE.ftLdL.cn
http://85KYqLgv.ftLdL.cn
http://QSENeb5a.ftLdL.cn
http://6cgvavfD.ftLdL.cn
http://Qr4OtSYh.ftLdL.cn
http://gbWTY3Pf.ftLdL.cn
http://9X8aht8o.ftLdL.cn
http://On8oa90X.ftLdL.cn
http://XvZLTMzx.ftLdL.cn
http://f6WwbrA9.ftLdL.cn
http://1NUyqTpC.ftLdL.cn
http://duNYaVHq.ftLdL.cn
http://Y8h3NH9L.ftLdL.cn
http://UEogC40g.ftLdL.cn
http://q8Tu3WqW.ftLdL.cn
http://JjXID9Ke.ftLdL.cn
http://f1jh8fM8.ftLdL.cn
http://ciHFiqDr.ftLdL.cn
http://fwjfSnfo.ftLdL.cn
http://1kHglavz.ftLdL.cn
http://Atf9Lo4y.ftLdL.cn
http://HQA79vaF.ftLdL.cn
http://www.dtcms.com/a/214240.html

相关文章:

  • set和map简单模拟实现
  • Ansible常用模块
  • 如何做好一份网络安全技术文档?
  • java中的线程安全的集合
  • 航空航天领域对滚珠丝杆的精度要求有多高?
  • 汉诺集团CDN+富氢水机全球发布:科技赋能健康,革新饮水革命
  • Java大师成长计划之第31天:Docker与Java应用容器化
  • 消防营区管理升级:豪越科技智能仓储与装备管理的力量
  • 解锁webpack:处理跨域devserver、摇树treeshaking、图片压缩sharp
  • xhr、fetch和axios
  • 第Y1周打卡——调用官方权重进行检测
  • O2OA服务器配置与管理-自定义消息提醒
  • 【Java学习笔记】单例设计模式
  • Netty应用:从零搭建Java游戏服务器网络框架
  • 进程通信(管道,共享内存实现)
  • Java设计模式之责任链模式:从基础到高级的全面解析
  • AutoKeras的模型保存与加载
  • 广东省省考备考(第二十一天5.26)—言语(第八节课)
  • 《软件工程》第 5 章 - 需求分析模型的表示
  • CMU-15445(5)——PROJECT#1-BufferPoolManager-Task#3
  • 人工智能工程师学习路线总结(下)
  • 实现安卓端与苹果端互通的方案多种多样,以下是一些主要的方案
  • (4)-Fiddler抓包-会话面板和HTTP会话数据操作
  • 芋道框架 - 接口设置匿名访问
  • Day3 记忆内容:map set 高频操作
  • Spring Boot 接口开发实战指南
  • NumPy 数组计算:通用方法
  • 第12次03 :登录状态的保持
  • deepseek告诉您http与https有何区别?
  • 华清远见亮相第63届高博会,展示AI/嵌入式/物联网/具身智能全栈教学解决方案