当前位置: 首页 > 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.jsqmd.com/news/21942/

相关文章:

  • 2025年评价高的快走丝线切割机床,电火花数控线切割机床实力厂家TOP推荐榜
  • 2025年热门的航空航天机械加工,自动化零件机械加工厂家实力及用户口碑排行榜
  • 2025年口碑好的无油烟不粘锅,高档不粘锅TOP实力厂家推荐榜
  • 2025年靠谱的无缝半圆管,外半圆管厂家推荐及选择指南
  • 读AI赋能09安全恐慌
  • 直播电商源码,就“对象”而言我们需要了解什么? - 云豹科技
  • 2025年评价高的特种纸,特种纸包装厂家最新权威实力榜
  • 2025年口碑好的二段力小角度铰链,铝框小角度铰链优质厂家推荐榜单
  • 2025年靠谱的风电驱鸟器,冲击波驱鸟器用户好评厂家排行
  • 2025年循环烘箱厂家最新企业推荐榜,热风循环烘箱厂家,聚焦服务品质与设备竞争力深度剖析
  • 邢台华电数控:车铣复合厂家技术应用与服务能力解析
  • 2025年靠谱的三联托辊,槽型托辊厂家推荐及选择参考
  • 2025年评价高的座驾式割草机,坐骑式割草机厂家最新实力排行
  • 2025年10月大路灯产品推荐榜:公牛领衔十强对比 。
  • 2025年评价高的炫彩金丝绒,染色金丝绒厂家推荐及选择参考
  • 2025年干燥机厂家最新综合评估榜:聚焦技术实力与产品专业性深度剖析
  • 2025年10月大路灯产品推荐榜:十款主流型号对比评价
  • 2025年质量好的制冷压缩机设备,活塞式制冷压缩机厂家最新热销排行
  • 2025年热门的高强度锌钢阳台栏杆,阳台栏杆厂家最新TOP排行榜
  • 2025年常州干燥设备企业最新推荐榜,聚焦企业服务品质与产品竞争力深度剖析
  • 2025年评价高的微动开关,防水微动开关厂家推荐及采购指南
  • AI股票预测分析报告 - 2025年10月25日 - 10:02:39
  • 2025年10月生产计划管理咨询公司推荐:五强评测指南
  • 2025 年商用洗碗机源头厂家最新推荐排行榜:聚焦高效节能设备,助力餐饮及企事业单位选购酒店 / 学校 / 工厂 / 全自动洗碗机公司推荐
  • 2025年10月研发管理咨询公司推荐:榜单聚焦五强实战派
  • 2025年10月小红书代运营公司口碑榜:五家深度评测
  • 2025年质量好的称重模块,称重模块传感器厂家推荐及采购指南
  • 2025年比较好的冷水机,蒸发冷冷水机优质厂家推荐榜单
  • 滑动窗口:无重复字符的最长子串
  • Sora来袭,短视频的“iPhone时刻”还是封禁对象?