码上通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 的比较

QWindow 和 QWidget 是 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、启动项目

复制代码
原创不易,打字不易,截图不易,撸码不易,整理不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,灌水,请动动你的金手指,祝您早日实现财务自由。
相关推荐
keyipatience1 分钟前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
栈帧之外1 小时前
【C++】STL之set
开发语言·c++
catchadmin2 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
jimy13 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++
狗凯之家源码网3 小时前
纯 PHP+MySQL 应用市场系统源码实测!
开发语言·mysql·php
dishugj3 小时前
系统架构风险点、敏感点和权衡点的概念和区分
java·开发语言
geovindu4 小时前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模
马优晨4 小时前
JAVA 中 VO 实体类是什么意思,为什么要做这个
java·开发语言·状态模式·java vo·java vo是什么
Aurorar0rua4 小时前
CS50 x 2024 Notes Python - 01
开发语言·python·学习方法
茉莉玫瑰花茶5 小时前
GO [ 标准库 ]
开发语言·后端·golang