qt学习笔记1:创建一个qt项目及一些基础知识

news/2024/4/26 13:40:08/文章来源:https://blog.csdn.net/qq_37299596/article/details/127438932

1 新建第一个项目

New Project -->qt widges application
qt
给项目创建名称,名称不能有中文和空格,创建路径中也不能有中文路径,不会报错但是运行时会报错
在这里插入图片描述
再下一步,到Kits,中文构建套件,用于选择编译套件,
在这里插入图片描述
下一步,类的信息,在创建一个新的qt项目时,都会默认地去创建一个类,这个类就是主窗口的类。其中基类有三种选择
在这里插入图片描述
其中QWidge是QMainWindow和QDialog的父类,QWidge是一个最简单的窗口(Widge就是窗口的意思),QMainWindow多了菜单栏,状态栏等,QDialog就是对话框;
首先我们来创建一个基类,创建一个myWidge类,这是会发现系统自动给创建了.h和.cpp
在这里插入图片描述
下边的创建界面,会有一些设计界面,里面的控件可以直接进行拖拽,一开始学习可以给它取消,先用代码去实现一些功能会更合适
下一步到汇总的界面,添加到版本控制系统,适用于团队协作svn vss git;可以看到左下角,是创建完这个项目之后会添加哪些文件,
在这里插入图片描述

.pro工程文件,类似于.sln文件,双击就能打开整个工程;main.cpp程序入口,另外两个是窗口的.h文件和.cpp文件

这之后按理就应该正常显示.h .cpp等文件,但我这边只有.pro文件,
在这里插入图片描述
……网上找了很多方法,都不对,最后定位到编译套件这一块,当时选择的时候我以为随便选一个就行,然后重新建工程,把默认的都保留了,再打开就都有了
在这里插入图片描述
小插曲,继续~

先看main函数程序入口

#include "mywidget.h"
#include <QApplication>//包含一个应用程序的类的头文件//main程序入口  argc命令行变量的数量  argv命令行变量的数组
int main(int argc, char *argv[])
{QApplication a(argc, argv);//a 是应用程序对象,在qt中应用程序对象有且只有一个myWidget w;//实例化一个窗口对象,它的父类叫QWidgew.show();//窗口对象默认不会显示,必须要调用show方法才能显示窗口return a.exec();//让应用程序对象进入消息循环 不会一闪而过, 代码会阻塞到这一行,后面的代码不会被执行
}

显示一个窗口:
在这里插入图片描述

工程文件的学习

在这里插入图片描述

.h文件

在这里插入图片描述

快捷键

运行:ctrl+r
编译:ctrl+b
自动对齐:ctrl+i
同名之间.h和.cpp的切换:F4

QPushButton创建

头文件:QPushButton
qmake: QT+= WIDGES
在这里插入图片描述按钮就在父窗口中了, 用btn的方法进行显示文本啥的
在这里插入图片描述第二种方法创建按钮
在这里插入图片描述

但得到的窗口大小会按着控件大小来, 一般来说这种方法不好
在这里插入图片描述
但是我们可以重置窗口的大小, 用resize(w, h);
还有一些操作,比如移动按钮,设置窗口标题,设置固定窗口

对象树

当QT中创建对象的时候会提供一个Parent对象指针,具体作用:
当创建一个QObject对象树时, 会看到QObject的构造函数接收一个QObject指针作为参数, 这个参数就是parent即父对象指针,这相当于在创建QObject对象时可以提供一个其父对象,我们创建的这个QObject对象会自动添加到其父对象的children()列表
当父对象析构时,这个列表中的所有对象会被析构,注意这里的父对象不是继承意义上的父对象, 这种机制在GUI程序设计中相当有用,如一个按钮有一个快捷键对象作为其子对象,那么当我们删除按钮的时候, 快捷键也应当被删除。

举例在原来myWidge上派生一个子类mypushButton,并调用子类的方法
在已有工程上添加C++新文件,继承QPushButton
在这里插入图片描述
myWidge中创建一个自己按钮的对象
在这里插入图片描述
其中 myBtn->setParent(this);就是设置到对象树中,这样当释放窗口的时候,下面的子类也都会被释放掉
释放顺序和C++一样,构建先父类再子类,但释放先子类再父类,但是他的打印顺序相反
在这里插入图片描述

因此qt一定程度上简化了内部回收机制

qt中的坐标系

(0,0)在左上角,X向右增大,Y向下增大

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

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

相关文章

JVM(尚硅谷)学习之垃圾回收相关算法

垃圾回收&#xff1a;标记阶段清除阶段 标记阶段&#xff1a; 引用计数算法&#xff1a;对每个对象保存一个整型的引用计数器属性由于引用计数算法无法处理循环引用的问题&#xff0c;所以Java的垃圾回收器中没有使用此类算法 在python语言中使用了引用计数算法。 可达性分析…

【云原生之Docker实战】使用Docker部署File Manager文件管理系统

【云原生之Docker实战】使用Docker部署File Manager文件管理系统一、File Manager简介1.File Manager简介2.File Manager特点二、检查宿主机系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4 forwarding4.检查Docker版本四、安装docker-comp…

自媒体短视频中视频相关的问题总结,涉及视频类型、质量、时长和原创等方面

自媒体短视频中视频相关的问题总结&#xff0c;涉及视频类型、质量、时长和原创等方面 大家好&#xff0c;我是我赢助手&#xff0c;专注于自媒体短视频去水印、去重和文案提取运营&#xff01; 前几天跟大家分享了我最近在做的一个短视频账号&#xff0c;也就是刚刚开始做短…

软件工程专业如何论文选题?

Ladies and gentlemen&#xff0c;写论文可谓是读书阶段最为关键的一环&#xff0c;你们是否还记得被论文折磨的日日夜夜&#xff0c;最可怕的不是导师催促你时铁青的面容&#xff0c;而是眼看着DDL&#xff08;Deadline&#xff09;来临&#xff0c;你的论文题目却让你一筹莫展…

【附源码】计算机毕业设计SSM体育队训练的信息管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

初识Classic AUTOSAR开发工具链

在过去&#xff0c;软件和硬件之间具有很强的耦合性&#xff0c;阻碍了软件组件在不同硬件平台上的可移植性和重用性。而AUTOSAR作为汽车电子行业的标准&#xff0c;提供标准的软件接口定义&#xff0c;工程师可以根据需求将软件组件分配到汽车的ECU中&#xff0c;实现标准软件…

关于Vue项目npm操作中npm run serve或npm run dev报错以及二者区别

&#x1f3af;问题分析 我们在启动vue项目的时候&#xff0c;需要用到npm操作&#xff0c;比如使用npm run serve或npm run dev。比如说我们下载其他人的开源vue项目时&#xff0c;我们想在本地运行时&#xff0c;我们用的到npm run serve或npm run dev有时候会出现报错&#x…

Windows11+wsl2+cuda+conda+pytorch安装记录之处处都是坑

由于代码在windows上运行总是抛奇奇怪怪的错误&#xff0c;一怒之下换linux环境运行&#xff0c;win11自带的wsl很方便&#xff0c;在各种博客找了n多教程&#xff0c;历时两天&#xff0c;终于安装好了环境&#xff0c;配置这个环境的目的是为了运行深度学习的代码&#xff0c…

摄像机登录网页界面提示无法跳转登录页面,网页提示无法访问此页面

摄像机登录网页界面提示无法跳转登录页面&#xff0c;网页提示无法访问此页面 &#xff08;报错截图&#xff09; 首先通过ping设备看是否ping得通IPC&#xff0c;如不通&#xff0c;检查IPC的供电和网络。 供电排查方法&#xff1a; &#xff08;1&#xff09;、观察IPC红外…

泊松流(Poisson Flow)生成模型

又搬来了神器啊~~~ 扩散模型最早来源于物理中的热力学&#xff0c;最近却在人工智能领域大放异彩。还有什么物理理论可以推动生成模型研究的发展呢&#xff1f;最近&#xff0c;来自 MIT 的研究者受到高维电磁理论的启发&#xff0c;提出了一种称作泊松流&#xff08;Poisson…

FDTD script command(源/监视器)

adddipole : 添加偶极子光源 addplane : 添加平面波 addindex : 添加折射率监视器 addmovie :添加电影监视器 addpower : 添加功率监视器 通用设置 设置结构名字 set("name",name);设置位置/跨度 set("x",1e-6);set("x span",1e-6); set(&q…

【软考中级信安】第三章--密码学基本理论

目录 1、密码学概况 1.1 密码学发展简况 1.2 密码学基本概念 1.3 密码安全性分析 2、密码体制分类 2.1 私钥密码体制&#xff08;密钥不能公开&#xff09; 2.2 公钥密码体制&#xff08;密钥可以公开&#xff09; 2.3 混合密码体制 3、常用密码算法 3.1 DES 3.2 …

【JAVA程序设计】(C00084)基于SSM+uniapp的社区疫情防控小程序及管理系统-有文档

基于SSMuniapp的社区疫情防控小程序及管理系统项目简介项目获取开发环境项目技术运行截图项目简介 基于后台ssm框架前台vue以及elementui框架小程序使用uniapp的社区疫情管控小程序及管理系统&#xff1a;系统管理员、用户 管理员角色包含以下功能&#xff1a; 首页、个人中心…

jmeter压力测试工具,雪崩效应,容错组件Sentinel

一。jmeter测试工具&#xff1a; 概念&#xff1a; 项目要上线&#xff0c;肯定是需要进行压力测试的 可以测试服务器够不够 场景&#xff1a; 一个问题&#xff0c;如果有服务接口被阻&#xff0c;那另一个接口是否会有影响 进而引出了jmeter&#xff0c;用来模拟线程压力下载…

YOLO性能指标

术语 全称 解释 True 表示推理正确 False 表示推理错误&#xff0c; 跟ground truth(位置&#xff0c;类别&#xff09;比对之后得到的结论 positive 推理为正例&#xff0c;iou > 阈值&#xff0c;类别概率>阈值 negative 推理为反例&#xff0c;不符…

HarmonyOS系统中内核实现烟雾检测的方法

大家好&#xff0c;今天我们主要来聊一聊&#xff0c;如何使用鸿蒙系统来操作烟雾浓度传感器。 目录 第一&#xff1a;烟雾浓度传感器原理 第二&#xff1a; 鸿蒙相关API函数分析 Init_E53_SF1() MQ2_PPM_Calibration() Get_MQ2_PPM() 第三&#xff1a;硬件设计 第四&…

【单片机毕业设计】【mcuclub-hj-006-7】基于单片机的空气质量(天然气、CO、甲醛、甲苯、TVOC、CO2)检测的设计

最近设计了一个项目基于单片机的空气质量&#xff08;天然气、CO、甲醛、甲苯、TVOC、CO2&#xff09;检测系统&#xff0c;与大家分享一下&#xff1a; 一、基本介绍 项目名&#xff1a;空气质量&#xff08;天然气、CO、甲醛、甲苯、TVOC、CO2&#xff09; 项目编号&#x…

04 CSS01

目标&#xff1a; 1、基础认知 2、基础选择器 3、字体和文本相关样式 4、Chrome调试工具 5、综合案例 一、基础认知 1.1 css介绍 中文名&#xff1a;层叠样式表 作用&#xff1a;给页面中的html标签设置样式 1.2 css语法规则 css写在style标签中&#xff0c;style标签一般…

【DETR 论文解读】End-to-End Object Detection with Transformer

目录前言一、整体架构二、基于集合预测的损失函数2.1、二分图匹配确定有效预测框2.2、损失函数三、前向推理四、掉包版代码五、一些问题Reference前言 贡献/特点&#xff1a; 端到端&#xff1a;去除NMS和anchor&#xff0c;没有那么多的超参&#xff0c;计算量也大大减少&am…

二叉树的OJ练习题

1.单值二叉树 描述&#xff1a;如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 链接&#xff1a;965. 单值二叉树 - 力扣&#xff08;LeetCode&#xff09; 思路…