码上通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、启动项目

复制代码
原创不易,打字不易,截图不易,撸码不易,整理不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,灌水,请动动你的金手指,祝您早日实现财务自由。
相关推荐
京师20万禁军教头7 分钟前
39面向对象(高级)-设计模式
java·开发语言·设计模式
白山编程大哥37 分钟前
Java 迭代器接口详解:从 Iterator 到 ListIterator 的完整指南
java·开发语言·windows
见叶之秋41 分钟前
【C++】String类的使用(含模拟实现)
java·开发语言·c++
想吃火锅100542 分钟前
【leetcode】42.接雨水js
开发语言·javascript·ecmascript
≮傷£≯√1 小时前
Qt 面试(一)
qt·ffmpeg·音视频
雪芽蓝域zzs2 小时前
第十六节:递归组件实现无限层级折叠侧边栏菜单
开发语言·javascript·ecmascript
神明不懂浪漫2 小时前
【第二章】库、表、增删改查操作
开发语言·数据库·经验分享·笔记
传奇开心果编程2 小时前
【Rust入门知识点学与练】第11课:HashMap 键值对集合
开发语言·学习·rust
yume_sibai3 小时前
03-Rust 函数式编程特性(闭包 + Iterator + Option/Result + 链式调用)
开发语言·后端·rust
奈斯先生Vector3 小时前
AIGC 视频生成实战:用 Kling Video 拆解文生视频、图生视频与完整工作流
开发语言·人工智能·windows·python·aigc·音视频