当前位置: 首页 > news >正文

Qt6学习入门——环境搭建

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.hskmm.com/?act=detail&tid=38650

相关文章:

  • 2025年知名的助力机械手,桁架机械臂品牌厂家排行榜
  • 2025年防裂贴抗裂贴源头厂家权威推荐榜单:沥青路面抗裂贴/自粘式抗裂贴/抗裂贴源头厂家精选
  • XXL-JOB(7)
  • 2025年热门的精工智能定制五金,高端定制五金最新TOP品牌厂家排行
  • 2025年评价高的白色挤塑板,挤塑板厂家实力及用户口碑排行榜
  • 2025年质量好的制冷压缩机设备,活塞式制冷压缩机厂家最新热销排行
  • 2025年靠谱的风电驱鸟器,冲击波驱鸟器用户好评厂家排行
  • 2025年循环烘箱厂家最新企业推荐榜,热风循环烘箱厂家,聚焦服务品质与设备竞争力深度剖析
  • 邢台华电数控:车铣复合厂家技术应用与服务能力解析
  • 2025年靠谱的三联托辊,槽型托辊厂家推荐及选择参考
  • 2025年10月大路灯产品推荐榜:公牛领衔十强对比 。
  • 2025年干燥机厂家最新综合评估榜:聚焦技术实力与产品专业性深度剖析
  • 2025年热门的高强度锌钢阳台栏杆,阳台栏杆厂家最新TOP排行榜
  • 2025年常州干燥设备企业最新推荐榜,聚焦企业服务品质与产品竞争力深度剖析
  • 2025年评价高的微动开关,防水微动开关厂家推荐及采购指南
  • 2025年10月北京生殖咨询公司评测榜:美月国际咨询数据解析
  • 2025年评价高的不锈钢烘焙凉网架,不锈钢定制网厂家最新权威实力榜
  • 2025年10月素材网站评测:高性价比正版资源榜
  • 2025年10月大路灯产品推荐榜:十款主流型号对比评价
  • AI股票预测分析报告 - 2025年10月25日 - 10:02:39
  • 2025 年冷水机生产厂家最新推荐榜:结合行业协会测评数据,精选靠谱企业深度解析低温/工业/防爆/分体式/风冷热泵/风冷低温/风冷螺杆冷水机公司推荐
  • 2025年质量好的浆液泵耐磨涂层,脱硫耐磨涂层厂家最新TOP实力排行
  • 2025年10月生产现场管理咨询公司推荐:五强榜单全维度对比
  • SI技术攻略:深入信号完整性分析
  • 2025年靠谱的铁氟龙喷涂厂家最新权威推荐排行榜
  • 2025 年北京律师事务所最新推荐榜,专业实力与服务口碑深度解析及优质机构盘点
  • 2025年口碑好的工业除尘布袋,氟美斯除尘布袋厂家推荐及采购指南
  • 2025年10月生产计划管理咨询公司推荐:五强评测指南
  • 2025年10月研发管理咨询公司推荐:榜单聚焦五强实战派
  • 滑动窗口:无重复字符的最长子串