因为项目需要,从零开始学习qt开发,一两个月从新手到入门,特此整理系列来记录和加强记忆。

准备工作

1. 下载好qt,几个G的那个大文件,安装

2. 随便找一些qt的入门教程,大致了解qt是什么,可以干什么

qt项目架构

实操碰到的弯路

我们项目中有现成的qt开发的其他界面,原本想着如何快速的copy-copy,但却不知道如何copy,那是因为连qt的项目架构都没有了解的原因

项目架构

通常的项目架构如下,但实际项目这几个模块的分布没有demo的这么清晰,但也是这么多个模块组成的

配置文件

配置文件主要是制定使用了那些qt的模块,需要显式指出,在实际工程中,可以在cmake文件中指定,本质上指出如何找到编译依赖所需要的库文件

find_package(Qt5Charts)
target_link_libraries(conf
Qt5::Widgets
Qt5::Charts)

forms ui文件

UI文件不是必须的,但UI文件可以减少大量的代码工作

一般来说可以在UI文件中把需要的布局、控件等初步设计好,然后在代码逻辑中对这些布局控件进行操控

编译之后,qt会自动生成ui控件对应的头文件

这个ui_xxx.h文件可以看到,ta的作用就是把我们ui里面又的布局、空间声明好,我们可以直接使用自动生成的Ui_MainWindow类,从而对我们的设计的布局进行操控

并且在最后面,在Ui的namespace里面声明MainWindow继承Ui_MainWindow来简化使用

header和source

实际使用的时候头文件和源文件都是放在一起的,只是qt的ide分开显示而已

可以看到在头文件引入自动生成的Ui::MainWindow

汇总一句话:qt的项目架构还是跟普通的c++开发有一定的差别,开始之前还是要把hello world跑起来,很多事情就自然而然,水到渠成了^_^

QT从新手到入门系列1-熟悉qt开发的项目架构的更多相关文章

  1. sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩

    经常有新手同学抱怨说sencha touch的项目加载速度为什么这么慢,经常要10秒左右的时间甚至更多, 大家都知道,sencha touch开发的项目中引用了大量的js文件,当我们打开项目时,st的 ...

  2. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(上)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(上) 前面我们已经学习了一个成熟的脚手架(vue-cli),笔者希望通过这个脚手架快速搭建系统(或项目).而展开搭建最好 ...

  3. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(下)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(下) 上篇 我们已经成功引入 element-ui.axios.mock.iconfont.nprogress,本篇继续 ...

  4. WPF新手快速入门系列 1.布局

    [概要] 该系列文章主要描述,新手如何快速上手做wpf开发.看过网上部分的教程,主要讲述的是介绍控件.这并没有问题,但是没有把自己的使用经验也完整的描述出来. 所以特此编写此系列文章希望能帮助到,因为 ...

  5. WPF新手快速入门系列 2.绑定

    [概要] 上一章讲了布局,按照市面上的书籍每一本讲的顺序都不一样,本系列是希望大家能快速上手去应对工作需要,所以本章就直接开始讲绑定. 如有学习过程中想交流学习.疑惑解答可以来此QQ群交流:58074 ...

  6. WPF新手快速入门系列 3.MVVM

    [概要] 这一章主要讲述,讲述MVVM模式和用法. 如有学习过程中想交流学习.疑惑解答可以来此QQ群交流:580749909.(所有涉及到的源码都上传到了群文件里) 希望加群的人提问时尽量想清楚自己的 ...

  7. Android系统编程入门系列之应用环境及开发环境介绍

        作为移动端操作系统,目前最新的Android 11.0已经发展的比较完善了,现在也到了系统的整理一番的时间,接下来的系列文章将以Android开发者为中心,争取用归纳总结的态度对初级入门者所应 ...

  8. 【系列教程1】Gradle入门系列二:第一个Java项目

    这篇教程的主要内容是讲解如何用Gradle编译和打包一个简单的Java项目. 该Java项目只有一个需求:我们的构建脚本必须创建一个可执行的Jar文件,换句话说,我们必须能够使用命令java -jar ...

  9. sencha touch 入门系列 (三)sencha touch 项目创建

    通过上一章节的学习,我们的开发环境已经配置好了,接下来我们开始创建第一个sencha touch的项目,网络上很多sencha touch的教程都是手动搭建项目的, 不过手动搭建的项目缺少一些senc ...

  10. Python入门系列(七)开发常说的“累”与“对象”

    类与对象 Python是一种面向对象的编程语言. 要创建类,请使用关键字class class MyClass: x = 5 创建一个名为p1的对象,并打印x的值 p1 = MyClass() pri ...

随机推荐

  1. 关于shell脚本的正确入门姿态

    .这两天工作无事,捣鼓齐了linux系统,对于简单的操作那个ok的,但从未接触过shell脚本,这篇文章便是记录一个如何入门shell,又在简历上又多了一项技能啦 ~ 1.什么是shell?      ...

  2. C# 把Parameter参数都列出来,把对象模型Json 化

    https://www.cnblogs.com/wangjunwei/p/4523739.html sqlObj.Value.Select(x => string.Format("'{ ...

  3. .net一般应用处理程序

    .net一般应用处理程序 public void ProcessRequest (HttpContext context) { context.Response.ContentType = " ...

  4. vue被部署到子(二级)目录

    需求有的时候,你的域名很珍贵,除了二级域名外.你还可以将你的项目部署在服务器二级目录下,这样的话,就可以部署多个项目了.比如说,我有一个域名为dshvv.com的服务器,我想部署两个项目:12306项 ...

  5. Ubuntu使用Certbot生成泛域名解析证书

    1. 安装Certbot sudo apt install certbot -y certbot --version certbot 2.9.0 2. 域名验证 泛域名的验证采用DNS01的验证方式, ...

  6. 对于linux 程序内存的使用量

    简介 如何查看一个linux程序是否产生内存泄露了呢?? 可以使用valgrind 一般的命令是 valgrind --leak-check=full --show-reachable=yes --t ...

  7. SciTech-Mathmatics - Matrix Analysis(矩阵分析)-重要结论 + 特征值分解 + Matrix视为 Linear Space的 变换 与 运算 + 任两个Vectors可通过Matrix变换互相转化 + 方阵(满秩)不改变向量维数

    SciTech-Mathmatics - Matrix Analysis:矩阵分析 Matrix Analysis 重要结论 \(\large \text{ Matrix Transformation ...

  8. SciTech-BigDataAIML-Tensorflow-Introduction to modules, layers, and models

    Introduction to modules, layers, and models Model: To do machine learning in TensorFlow, you are lik ...

  9. Ubuntu22.04在virtualbox上安装并配置远程

    本文介绍使用virtualbox工具安装Ubuntu虚拟机,笔者选择使用22.04,理论上所有版本步骤都是一样. 同时安装virtualbox增强功能,Ubuntu与Windows使用粘贴.拖拽.自动 ...

  10. Win11系统为什么不显示缩略图的问题

    有雨林木风官网的小伙伴在使用win11正式版系统打开文件夹时,正常都会看到缩略图,但一些小伙伴说他的电脑却没有显示缩略图.这是为什么啊,又该如何解决?接下来,雨林木风小编将为大家分享详细的解决方法,希 ...