码上通QT实战01--创建项目

1、QT项目的构成

Qt项目通常由多个关键组件和文件构成,这些组件共同协作以实现应用程序的功能。以下是Qt项目的主要构成部分:
项目文件(.pro或.qmake)

项目文件是Qt项目的核心配置文件,通常以.pro或.qmake为扩展名。它定义了项目的构建规则、依赖关系、源文件列表以及其他构建选项

cpp 复制代码
QT += core gui
TARGET = MyApp
SOURCES += main.cpp mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui

源代码文件

Qt项目的源代码通常包括C++文件(.cpp)和头文件(.h)。这些文件实现了应用程序的逻辑和功能。主函数通常位于main.cpp中,而其他类定义和实现分布在各自的头文件和源文件中。

用户界面文件(.ui)

Qt Designer生成的UI文件(.ui)用于定义应用程序的图形用户界面。这些文件是XML格式的,可以通过Qt Designer工具进行可视化编辑,也可以通过uic工具在构建时转换为C++代码。

资源文件(.qrc)

资源文件(.qrc)用于将图像、图标、翻译文件等资源嵌入到应用程序中。这些文件在编译时会被转换为二进制数据,并链接到最终的可执行文件中

其他辅助文件

Qt项目可能还包括其他辅助文件,如配置文件(.ini)、文档(.md)、测试文件等,具体取决于项目的需求和复杂性。

通过合理组织这些组件,Qt项目可以高效地构建、维护和扩展。

2、开发环境

本项目采用QT6.9.3,IDE采用QTCREATOR18.0,数据库采用sqlite3,软件的安装,环境的配置在此忽略。

3、开始创建

1、创建项目


2、QWindow 与 QWidget 的比较

QWindowQWidget 是 Qt 框架中用于界面开发的两个核心类,分别属于不同的层级,适用于不同的场景。以下是两者的主要区别和适用场景:

功能定位

  • QWindow:属于底层窗口抽象,直接管理操作系统原生窗口(如 X11/Wayland 窗口、Win32 HWND 等)。它不包含任何用户界面组件,仅提供窗口的基本属性和事件处理(如尺寸、位置、输入事件)。适用于需要直接操作原生窗口或开发无装饰界面的场景(如 OpenGL 渲染窗口)。

  • QWidget:基于 QWindow 的高层封装,提供完整的用户界面组件(如按钮、文本框等)和布局管理。内置样式绘制、焦点管理等功能,适合传统桌面应用程序开发。

依赖关系

  • QWindow 是 QWidget 的底层基础。每个 QWidget 最终会关联一个 QWindow(通过 winId() 获取),但 QWindow 可以独立存在。
  • QWidget 依赖 QApplication 的事件循环,而 QWindow 可与 QGuiApplication 配合使用(无需完整的 QApplication)。

性能与开销

  • QWindow 更轻量,适合高性能场景(如游戏、视频播放器)。直接操作原生窗口减少中间层开销。
  • QWidget 因包含组件树和样式处理,开销较大,但开发效率更高。

典型用例

  • QWindow

    • 3D 图形渲染(如 Qt Quick 或 OpenGL 上下文管理)。
    • 需要跨平台原生窗口句柄的集成(如嵌入第三方库窗口)。
  • QWidget

    • 表单应用程序(如配置工具、数据管理界面)。
    • 需要复杂布局和交互控件的场景

4、设计UI

1、设计窗体

2、 启动参数

3、启动项目

复制代码
原创不易,打字不易,截图不易,撸码不易,整理不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,灌水,请动动你的金手指,祝您早日实现财务自由。
相关推荐
charlie11451419113 小时前
从 0 开始的机器学习——NumPy 线性代数部分
开发语言·人工智能·学习·线性代数·算法·机器学习·numpy
catchadmin14 小时前
Laravel12 + Vue3 的免费可商用商业级管理后台 CatchAdmin V5 正式发布
开发语言·php
袁气满满~_~14 小时前
Python数据分析学习
开发语言·笔记·python·学习
寻星探路15 小时前
【算法专题】滑动窗口:从“无重复字符”到“字母异位词”的深度剖析
java·开发语言·c++·人工智能·python·算法·ai
程序员小白条15 小时前
面试 Java 基础八股文十问十答第八期
java·开发语言·数据库·spring·面试·职场和发展·毕设
Dxy123931021615 小时前
python连接minio报错:‘SSL routines‘, ‘ssl3_get_record‘, ‘wrong version number‘
开发语言·python·ssl
大王小生15 小时前
C# CancellationToken
开发语言·c#·token·cancellation
listhi52015 小时前
基于C#实现屏幕放大镜功能
开发语言·c#
我叫袁小陌15 小时前
C++多线程全面详解
开发语言·c++
lihongli00015 小时前
【工程实战】Win11 + Ubuntu20.04 + Ubuntu24.04 三系统长期稳定安装方案(含避坑指南)
开发语言