【QT】创建第一个QT程序

下面的前7个可以先不看,直接从8开始看

1. 创建Qt程序

  1. 一个Qt程序的组成部分:应用程序类,窗口类
  2. 应用程序类个数:有且只有一个QApplication a;
  3. 如何查看类对应的模块:光标移动到类上,F1
  4. qmake+=模块的名字

2. 第一个Qt程序

  1. 在窗口中添加按钮类名:QPushButton
  2. 设置按钮显示的内容:setText
  3. 移动按钮位置:move
  4. 按钮设置父窗口:setParent
  5. 设置窗口的大小:resize() resizeFixed()

3. Qt的坐标体系:

  1. 坐标原点:左上角
  2. x轴延伸的方向:向右递增
  3. y轴延伸的方向:向下递增

4. Qt内存回收机制

满足什么条件的类不需要用户手动释放内存?

  1. 从QObject类直接或间接派生
  2. 给直接或间接派生出的类,指定父对象

5.信号和槽

  1. 格式:connect(信号发出者对象(指针),&className::clicked,信号接收者对象(指针),&classB:slot);

标准信号槽的使用:

  • 自定义槽函数
  1. void
  2. 可以重载
  3. 需要跟信号对象,个数<=信号的参数个数
  • 自定义信号
  1. void
  2. 可以重载
  3. 需要使用-个关键字声明:signals
  4. 不需要函数定义

6. 拓展:

  1. 信号可以连接信号(参数的对应)
  2. 一个信号可连接多个槽函数
  3. 多个信号可连接同一个槽函数
  4. 槽函数可以使用1 ambda表达式

7. lambda表达式

=
{
}
在.pro添加一次CONFIG+=c++11

8. 下面三种均可以作为顶层窗口

  • QWidget: 所有窗口类的父类。
  • QDialog :顶层窗口(第一个打开的窗口,对话框窗口) ,只有一个关闭按钮。其他的窗口有最大化最小化
  • QMainWindow:菜单栏,工具栏,状态栏

在这里插入图片描述

控件:窗口类(都是从QWidget派生的)

#include "mywidget.h"   //添加的窗口类,//在qt中类名和头文件名相同
#include <QApplication>     //应用程序类:比如创建好的窗口的拖动,放大缩小等int main(int argc, char *argv[])
{//应用程序类,在每一个qt程序中有且仅有一个QApplication a(argc, argv);//窗口类,创建出来之后默认不显示MyWidget w;  //如果要对 窗口操作,就必须对 w进行操作//显示窗口w.show();//(里面就是一个死循环,收到某一个信号就会结束(跳出循环),结束对窗口的监听)return a.exec();//走到后台进行了一个消息
}

MyWidget w; //如果要对 下面的窗口(顶层窗口)操作,就必须对 w进行操作

在这里插入图片描述

当用到什么模块,就加入到Firstproject.pro的文件中,如图使用到了core,gui就加进去

在这里插入图片描述

如何知道当前类要用到哪些模块?

在这里插入图片描述

按两次Esc即可退出。

关于Firstproject.pro的介绍

#qt程序用到的模块
QT       += core gui
#兼容以前的版本,5.0以上可以不用加,如果是5.0以下没有Qwidget
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets#生成的应用程序的名字
TARGET = Firstproject
#指定生成的makefile的类型lib
TEMPLATE = appCONFIG += c++11
# 源文件 \换行就加\
SOURCES += \main.cpp \mywidget.cppHEADERS += \mywidget.h

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【易经】-- 伏羲八卦次序图

1、伏羲八卦次序图 ☷☶☵☴☳☲☱☰八卦坤艮坎巽震离兑乾四象太阴少阳少阴太阳两仪阴阳太极太极 2、八“单卦”&#xff08;经卦&#xff09; 符号卦名自然象征1☰乾qin天2☱兑du泽3☲离l火4☳震zhn雷5☴巽xn风6☵坎kǎn水7☶艮gn山8☷坤kūn地 3、八卦及所代表的意像

二,几何相交----2,区间相交检测IID

一&#xff0c;算法 对于空间的线段是否相交&#xff0c;假设都是与x平行&#xff0c;则需要三步 1&#xff0c;对各线段左右端点设置为L,R标志 2&#xff0c;从小到大进行排序 3&#xff0c;线性扫描&#xff0c;从小到大&#xff0c;根据模式判断是否相交&#xff0c;假设不相…

⭐每天一道leetcode:27.移除元素(简单;vector)

⭐今日份题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中…

录屏、截屏好工具

踩过的坑&#xff1a;用了win11之后&#xff0c;截屏工具就无法安装了&#xff0c;还有sqlcompare也无法安装了。 解决&#xff1a;关闭系统自带的安全机制“实时保护”&#xff0c;再重新安装工具。

shell脚本 条件语句

一、条件语句 1. test测试 test 测试文件的表达式 是否成立 格式1&#xff1a;test 条件表达式 格式2&#xff1a;[ 条件表达式 ] 注意[]空格&#xff0c;否则会失败 操作符&#xff1a; -d&#xff1a;测试是否为目录&#xff08;Directory&#xff09; -e&#xff1a;测…

3分钟开通GPT-4

AI从前年12月份到现在已经伴随我们一年多了&#xff0c;还有很多小伙伴不会开通&#xff0c;其实开通很简单&#xff0c;环境需要自己搞定&#xff0c;升级的话就需要一张visa卡&#xff0c;办理visa卡就可以直接升级chatgptPLSU 一、虚拟卡支付 这种方式的优点是操作简单&…

直播预告|从一张 CD 说起,关于播放器的前世今生

1877 年&#xff0c;天才发明家爱迪生研发出了人类历史上第一台可以录音和放音的装置&#xff0c;被称为“话筒”。 当时&#xff0c;这台机器使用一张薄薄的铁箔盘来录制声音&#xff0c;爱迪生亲手转动铁箔盘&#xff0c;在上面刻下声音的波纹。不过这个设计并不太实用&…

Swing程序设计(11)动作事件监听器,焦点事件监听器

文章目录 前言一、事件监听器是什么&#xff1f;二、详细展开 1.动作事件监听器2.焦点事件监听器总结 前言 如果你是坚持从Swing程序第一篇看到了这里&#xff0c;恭喜你&#xff0c;Swing程序设计简单地落下了帷幕&#xff0c;关于Swing程序更深的了解&#xff0c;可以自行学习…

《花书》学习:LeNet

# LeNet网络架构 正常的应该是&#xff1a;输入→操作→输出 但都简化 要么省略 操作 要么省略 输出 # LeNet第一个卷积层详解

(学习日记)2024.03.04:UCOSIII第六节:main函数+前六节总结

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

Linux/Knife

Knife Enumeration nmap 第一次扫描发现系统对外开放了22和80端口&#xff0c;端口详细信息如下 系统对外开放了2个端口&#xff0c;22的ssh和80的http&#xff0c;先访问web看看 单看该服务&#xff0c;并没有发现有趣的东西&#xff0c;wappalyzer显示php版本为8.1.0 PHP…

国密SSL证书:保障中国网络安全的重要利器

国密SM2算法是一种基于椭圆曲线密码学的非对称加密算法&#xff0c;具有较高的安全性和可靠性。与传统的RSA算法相比&#xff0c;SM2算法在相同安全强度下具有更高的计算效率和更小的密钥长度&#xff0c;能够提供更好的安全保障。 SM2算法采用了国家密码管理局指定的椭圆曲线…