Qt 6.11 最新特性四大核心功能实例演示示例

C/C++ wes 28 days ago (2026-04-01) 211 views

一、快速安装与环境准备

  1. 下载 Qt Online Installer,安装时勾选:
    • Qt 6.11 MSVC2022 / GCC 编译套件
    • Desktop Qt 6.11 基础模块 + Quick + Quick3D + Network
  2. 打开 Qt Creator,新建 Qt Quick Application,默认工程即可兼容全部示例。
  3. 所有代码直接替换工程原有内容,一键构建运行。


二、示例 1:Canvas Painter 硬件加速 2D 绘制(C++)

.pro 文件追加依赖:
qmake
QT += gui widgets canvaspainter
main.cpp 完整代码:
#include <QApplication> #include <QtCanvasPainter/QCPainterWidget> #include <QTimer> int main(int argc, char *argv[]) { QApplication a(argc, argv); QtCanvasPainter::QCPainterWidget w; w.resize(800, 600); w.show(); int radius = 50; bool grow = true; QTimer timer; QObject::connect(&timer, &QTimer::timeout, [&](){ auto painter = w.beginPainting(); painter->fillRect(0,0,w.width(),w.height(),Qt::white); painter->setBrush(QColor(30,144,255)); painter->drawEllipse(w.width()/2-radius, w.height()/2-radius, radius*2, radius*2); w.endPainting(); if(grow) radius +=2; else radius -=2; if(radius>150||radius<30) grow=!grow; }); timer.start(30); return a.exec(); }

效果:窗口中心动态缩放蓝色圆,全程 GPU 硬件加速,流畅不卡顿。

三、示例 2:Qt Quick 3D 开启 SSR+SSGI 光影(QML)

main.qml:
import QtQuick.Window 2.15 import QtQuick3D 6.11 Window { width: 800 height: 600 visible: true title: "Qt6.11 3D光影演示" View3D { anchors.fill: parent PerspectiveCamera { position: Qt.vector3d(0, 2, 10) } ExtendedSceneEnvironment { ssrEnabled: true ssgiEnabled: true motionBlurEnabled: true } Model { source: "#Cube" scale: Qt.vector3d(3,3,3) position: Qt.vector3d(0,-1,0) materials: PrincipledMaterial { baseColor: "#87CEFA" roughness: 0.15 } } Model { source: "#Plane" scale: Qt.vector3d(15,15,1) materials: PrincipledMaterial { baseColor: "#f0f0f0" roughness: 0.05 } } DirectionalLight { eulerRotation.x: -45 } } }
效果:自动开启真实反射与全局漫反射,3D 质感媲美小型游戏引擎。

四、示例 3:TaskTree 优雅异步任务流(告别回调地狱)

.pro 添加:
QT += network tasktree


main.cpp 追加:

#include <QCoreApplication> #include <QtTaskTree/TaskTree> #include <QNetworkAccessManager> #include <QNetworkRequest> #include <QJsonDocument> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication app(argc,argv); QNetworkAccessManager nam; auto tree = QtTaskTree::TaskTree::create(); auto reqTask = tree->addTask([&](){ QUrl url("https://httpbin.org/get"); return nam.get(QNetworkRequest(url)); }); auto parseTask = tree->addTask([](QNetworkReply* rep){ auto json = QJsonDocument::fromJson(rep->readAll()); rep->deleteLater(); return json.object(); }, {reqTask}); auto logTask = tree->addTask([](QJsonObject obj){ qDebug()<<"解析完成:"<<obj; }, {parseTask}); tree->run(); return app.exec(); }
特点:顺序依赖清晰、自动线程管理、异常统一捕获,比传统信号槽整洁百倍。

五、示例 4:OpenAPI 自动生成后端调用

  1. 准备后端api.yaml标准 OpenAPI 文档;
  2. Qt6.11 内置命令行工具一键生成:
    qtopengenerator -i api.yaml -o ./ApiClient
  3. 生成后直接调用:
#include "apiclient.h" ApiClient client; client.getUserInfo([](){ qDebug()<<"接口数据读取完成"; });
无需手写 HTTP 封装,大幅节省对接后端时间。

六、新手使用小提示

  1. 路径无中文无空格,避免编译报错;
  2. 嵌入式开发优先启用 RHI 硬件渲染,省电又流畅;
  3. 旧 Qt 项目升级 6.11 只需替换模块引用,基本无缝兼容。