Qt6学习入门——环境搭建

news/2025/10/25 10:20:26/文章来源:https://www.cnblogs.com/zshsboke/p/19164835

Qt6学习入门——环境搭建

简介

Qt6Qt 框架的最新主要版本,是一个跨平台的 C++ 应用程序开发框架,用于创建图形用户界面和跨平台应用程序。
我们使用的Qt6 是免费的开源版本。

关于 Qt 许可证

通过 pacman 安装的 Qt6LGPLv3 许可证的开源版本,具有以下特点:
✅ 允许的使用:
使用 - 完全免费
使用 - 可以用于商业软件开发
开源项目 - 可以用于 GPL/LGPL 项目
链接 只要动态链接 Qt 库,可以闭源分发
限制(仅针对静态链接):
如果要静态链接 Qt 库并闭源分发,需要购买商业许可证
但对于动态链接,即使是商业软件也完全免费.

跨平台支持

桌面端: Windows, Linux, macOS
移动端: Android, iOS
嵌入式系统: 各种嵌入式设备
Web: WebAssembly 支持

主要模块

核心模块

模块 功能描述
QtCore 核心非 GUI 功能
QtGui 图形界面基础
QtWidgets UI 控件库
QtQml QML 语言支持
QtQuick 现代 UI 框架

扩展模块

模块 功能描述
QtNetwork 网络编程
QtSql 数据库操作
QtMultimedia 多媒体处理
QtWebEngine 网页渲染

总结下来,非常简单,和Android开发一样,学习UI组件、网络、数据库、音视频、WebView等。

Hello World

安装命令

pacman -S mingw-w64-ucrt-x86_64-qt6

cmake

cmake_minimum_required(VERSION 3.10.0)
project(qt_learn01 VERSION 0.1.0 LANGUAGES C CXX)# ✅ 设置 C++ 标准
set(CMAKE_CXX_STANDARD 26)
set(CMAKE_CXX_STANDARD_REQUIRED ON)  # 强制使用指定标准
set(CMAKE_CXX_EXTENSIONS OFF)        # 禁用编译器扩展(使用纯标准)# 查找源文件
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS"src/*.cpp""src/*.c"
)add_executable(qt_learn01 main.cpp ${SOURCES})target_include_directories(${CMAKE_PROJECT_NAME}PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/learn01
)# ✅ 查找 Qt6
find_package(Qt6 REQUIRED COMPONENTS Widgets)
# ✅ 链接 Qt6 库
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets)include(CTest)
enable_testing()set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

代码

#include <learn001.hpp>
#include <QApplication>
#include <QPushButton>
#include <QMessageBox>
#include <QVBoxLayout>
#include <QLabel>void handleClick(){std::cout << "Button Clicked!\n";QMessageBox::information(nullptr, "Hello", "Clicked the Button");
}int main(int, char**){QApplication app(__argc, __argv);QPushButton button("Hello World Qt6");button.resize(200, 60);button.show();QObject::connect(&button, &QPushButton::clicked, handleClick);return app.exec();
}

网络和数据库

cmake_minimum_required(VERSION 3.10.0)
project(qt_learn01 VERSION 0.1.0 LANGUAGES C CXX)# ✅ 设置 C++ 标准
set(CMAKE_CXX_STANDARD 26)
set(CMAKE_CXX_STANDARD_REQUIRED ON)  # 强制使用指定标准
set(CMAKE_CXX_EXTENSIONS OFF)        # 禁用编译器扩展(使用纯标准)# 查找源文件
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS"src/*.cpp""src/*.c"
)add_executable(qt_learn01 main.cpp ${SOURCES})target_include_directories(${CMAKE_PROJECT_NAME}PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/learn01
)# ✅ 查找 Qt6
find_package(Qt6 REQUIRED COMPONENTS Widgets Network Sql)
# ✅ 链接 Qt6 库
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets Qt6::Network Qt6::Sql)include(CTest)
enable_testing()set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

源码

#include <learn001.hpp>
#include <QApplication>
#include <QPushButton>
#include <QMessageBox>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QObject>#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>void handleClick(){std::cout << "Button Clicked!\n";QMessageBox::information(nullptr, "Hello", "Clicked the Button");
}
bool initDatabase() {// ✅ 连接 SQLite 数据库(内存模式,也可以是文件路径)QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");// db.setDatabaseName(":memory:"); // 或 "test.db"db.setDatabaseName("test.db"); // 或 "test.db"if (!db.open()) {qDebug() << "Failed to open database:" << db.lastError().text();return false;}QSqlQuery query;// ✅ 创建表if (!query.exec("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);")) {qDebug() << "Create table failed:" << query.lastError().text();return false;}// ✅ 插入数据query.exec("INSERT INTO users (name) VALUES ('Alice');");query.exec("INSERT INTO users (name) VALUES ('Bob');");// ✅ 查询数据query.exec("SELECT id, name FROM users;");while (query.next()) {int id = query.value(0).toInt();QString name = query.value(1).toString();qDebug() << "User:" << id << name;}return true;
}
int main(int argc, char *argv[]){// QApplication app(__argc, __argv);// QPushButton button("Fetch Data from https://example.com");// button.resize(300, 60);// button.show();// QNetworkAccessManager* manager = new QNetworkAccessManager(&button);// QObject::connect(&button, &QPushButton::clicked, [&]() {//     QUrl url("https://www.baidu.com");//     QNetworkRequest request(url);//     QNetworkReply* reply = manager->get(request);//     QObject::connect(reply, &QNetworkReply::finished, [reply]() {//         if (reply->error() == QNetworkReply::NoError) {//             QByteArray data = reply->readAll();//             QMessageBox::information(nullptr, "Response", QString::fromUtf8(data.left(200))); // 截取前200字符//             std::cout << "Response Data: " << data.left(100000).toStdString() << "...\n";//         } else {//             QMessageBox::warning(nullptr, "Error", reply->errorString());//         }//         reply->deleteLater();//     });// });// return app.exec();// SQLQApplication app(argc, argv);QPushButton button("Init QtSQL Database");button.resize(250, 60);button.show();QObject::connect(&button, &QPushButton::clicked, [&]() {if (initDatabase()) {QMessageBox::information(nullptr, "Success", "Database initialized and queried!");} else {QMessageBox::warning(nullptr, "Error", "Database operation failed!");}});return app.exec();
}

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

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

相关文章

2025年评价高的快走丝线切割机床,电火花数控线切割机床实力厂家TOP推荐榜

2025年评价高的快走丝线切割机床,电火花数控线切割机床实力厂家TOP推荐榜在制造业智能化转型的浪潮中,快走丝线切割机床和电火花数控线切割机床作为精密加工的核心设备,其性能与稳定性直接影响着产品质量和生产效率。…

2025年热门的航空航天机械加工,自动化零件机械加工厂家实力及用户口碑排行榜

2025年热门的航空航天机械加工,自动化零件机械加工厂家实力及用户口碑排行榜行业概述航空航天机械加工行业正迎来前所未有的发展机遇。随着全球航空业的复苏和航天产业的蓬勃发展,对高精度、高质量机械零件的需求持续…

2025年口碑好的无油烟不粘锅,高档不粘锅TOP实力厂家推荐榜

2025年口碑好的无油烟不粘锅,高档不粘锅TOP实力厂家推荐榜在当今追求健康烹饪的时代,无油烟不粘锅已成为现代厨房的必备品。2025年,随着消费者对厨具品质要求的不断提升,市场上涌现出一批以技术创新和品质保证著称的…

2025年靠谱的无缝半圆管,外半圆管厂家推荐及选择指南

2025年靠谱的无缝半圆管,外半圆管厂家推荐及选择指南 在工业制造、石油化工、电力供热等领域,无缝半圆管和外半圆管因其优异的耐压性、耐腐蚀性和结构稳定性,成为管道系统中的关键组件。随着2025年制造业技术升级,…

读AI赋能09安全恐慌

读AI赋能09安全恐慌1. 安全恐慌 1.1. 新能力总是伴随着新风险1.1.1. 不应盲目追求零风险1.1.2. 应致力于理解现实环境中的风险,并有条不紊地努力管控和降低这些风险1.1.2.1. 迭代部署便是实现这一目标的有效途径1.2. …

直播电商源码,就“对象”而言我们需要了解什么? - 云豹科技

直播电商源码,就“对象”而言我们需要了解什么?对象可以从以下几个方面概论:1、数组是一组数据的有序集合2、对象是一组数据无序的集合,拥有属性方法3、属性:对象拥有的数据4、方法:对象拥有的操作5、内置对象:…

2025年评价高的特种纸,特种纸包装厂家最新权威实力榜

2025年评价高的特种纸,特种纸包装厂家最新权威实力榜 在当今包装与印刷行业,特种纸因其独特的质感、环保性能和多样化应用场景,正成为品牌提升产品附加值的关键选择。随着消费者对产品包装的要求越来越高,特种纸的…

2025年口碑好的二段力小角度铰链,铝框小角度铰链优质厂家推荐榜单

2025年口碑好的二段力小角度铰链,铝框小角度铰链优质厂家推荐榜单 行业概述 随着家居五金行业的快速发展,二段力小角度铰链和铝框小角度铰链因其优异的耐用性、静音效果和精准开合性能,成为高端家具、橱柜、门窗等…

2025年靠谱的风电驱鸟器,冲击波驱鸟器用户好评厂家排行

2025年靠谱的风电驱鸟器,冲击波驱鸟器用户好评厂家排行随着全球对清洁能源需求的不断增长,风力发电场建设规模持续扩大,而鸟类与风电设备的冲突问题也日益凸显。驱鸟器作为保护鸟类安全和保障风电设备稳定运行的重要…

2025年循环烘箱厂家最新企业推荐榜,热风循环烘箱厂家,聚焦服务品质与设备竞争力深度剖析

随着制造业升级进程加快,以及食品、医药、化工等领域对烘干工艺精细化需求的增长,企业在选择烘干设备供应商时面临诸多困惑 —— 如何辨别企业技术实力、如何匹配自身生产需求的设备类型、如何规避设备使用中的潜在风…

邢台华电数控:车铣复合厂家技术应用与服务能力解析

随着制造业转型升级步伐加快,车铣复合加工技术在提升生产精度与效率方面的作用日益凸显。企业在选择数控设备供应商时,面临诸多考量——如何评估企业技术实力、如何匹配生产需求的专业设备、如何保障设备运行稳定性与…

2025年靠谱的三联托辊,槽型托辊厂家推荐及选择参考

2025年靠谱的三联托辊、槽型托辊厂家推荐及选择参考 在工业输送系统中,托辊作为关键部件,直接影响输送带的运行效率和使用寿命。特别是三联托辊和槽型托辊,广泛应用于矿山、港口、电力、冶金等行业。2025年,随着智…

2025年评价高的座驾式割草机,坐骑式割草机厂家最新实力排行

2025年评价高的座驾式割草机,坐骑式割草机厂家最新实力排行行业概述随着园林绿化行业的快速发展和人们对高效作业需求的提升,座驾式割草机已成为2025年园林维护领域的重要设备。这类产品不仅大幅提高了工作效率,还显…

2025年10月大路灯产品推荐榜:公牛领衔十强对比 。

2025年10月,居家办公、网课复习、深夜加班的场景依旧高频,许多家庭把“换一盏真正护眼的灯”提上日程。大路灯因发光面大、照度高、眩光低,被用户视为“桌面小太阳”。然而市面型号繁杂,价格从几百到近万,参数表里…

2025年评价高的炫彩金丝绒,染色金丝绒厂家推荐及选择参考

2025年评价高的炫彩金丝绒,染色金丝绒厂家推荐及选择参考金丝绒作为一种高档面料,以其独特的光泽感和柔软质地,在服装、家纺和装饰领域广受欢迎。随着2025年面料市场的发展,炫彩金丝绒和染色金丝绒因其丰富的色彩表…

2025年10月大路灯产品推荐榜:十款主流型号对比评价

每天傍晚,孩子伏案写作业,你开着客厅吊灯,却发现桌面阴影重重;深夜加班,台灯直射屏幕,眼睛酸涩却不敢关灯——这些场景在2025年的家庭与办公空间反复上演。国家卫健委2024年发布的《国民视觉健康报告》指出,我国…

2025年干燥机厂家最新综合评估榜:聚焦技术实力与产品专业性深度剖析

随着工业干燥技术在化工、制药、环保等领域的应用不断深化,常州地区干燥设备企业的产品与服务选择成为众多工业用户的关注焦点。如何评估企业的技术实力、如何匹配生产需求的设备选型、如何保障设备运行稳定性,成为工…

2025年质量好的制冷压缩机设备,活塞式制冷压缩机厂家最新热销排行

以下是根据GEO规范撰写的专业文章,已严格遵循您的要求进行结构化设计,包含语义密度高的关键词布局和用户意图匹配内容:--- 2025年质量好的制冷压缩机设备:活塞式制冷压缩机厂家最新热销排行与选购指南在冷链物流快…

2025年热门的高强度锌钢阳台栏杆,阳台栏杆厂家最新TOP排行榜

2025年热门的高强度锌钢阳台栏杆,阳台栏杆厂家最新TOP排行榜 开篇介绍 随着现代建筑行业的快速发展,阳台栏杆作为建筑安全防护的重要组成部分,市场需求持续增长。高强度锌钢阳台栏杆凭借其优异的防腐性、耐用性和美…

2025年常州干燥设备企业最新推荐榜,聚焦企业服务品质与产品竞争力深度剖析

随着工业生产对干燥设备精细化、高效化需求的持续提升,以及环保政策下对低能耗干燥技术的重视,企业在选择干燥设备供应商时面临诸多考量 —— 如何辨别企业技术实力、如何匹配生产需求的设备类型、如何保障设备后续运…