【Qt】Qml界面中嵌入C++ Widget窗口
1. 目的
qml做出的界面漂亮,但是执行效率低,一直想找一个方法实现qml中嵌入c++界面。现在从网上找到一个方法,简单试了一下貌似可行,分享一下。
2. 显示效果

3. 代码
3.1 工程结构

3.2 pro文件
- 需要添加
widgets=>QT += quick widgets
QT += quick widgets# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cppRESOURCES += qml.qrc# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH =# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
3.3 main.cpp文件(重点)
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QWindow>
#include <QtWidgets/QWidget>
#include <QPushButton>
#include <QApplication>int main(int argc, char *argv[])
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endifQApplication app(argc, argv); //这里改为QApplication QQmlApplicationEngine engine;const QUrl url(QStringLiteral("qrc:/main.qml"));QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,&app, [url](QObject *obj, const QUrl &objUrl) {if (!obj && url == objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);//获取QML源窗口QObject *QmlObj = engine.rootObjects().first();QWindow *QmlWindow = qobject_cast<QWindow *>(QmlObj);QmlWindow->setTitle("C++ set title");WId parent_HWND = QmlWindow->winId();//新建widgetQWidget widget;widget.setGeometry(0, 0, 300, 300);QPushButton btn("send", &widget);btn.setGeometry(5, 5, 60, 20);widget.winId();//将widget插入QMLwidget.windowHandle()->setParent(QmlWindow);widget.show();return app.exec();
}
3.4 main.qml文件
- 这里的
titile的Helllo World被c++修改了
import QtQuick 2.15
import QtQuick.Window 2.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")
}
4. 参考
震惊!QWidget竟然可以嵌入到QML中,QMl窗口句柄竟然是这样获取
相关文章:
【Qt】Qml界面中嵌入C++ Widget窗口
1. 目的 qml做出的界面漂亮,但是执行效率低,一直想找一个方法实现qml中嵌入c界面。现在从网上找到一个方法,简单试了一下貌似可行,分享一下。 2. 显示效果 3. 代码 3.1 工程结构 3.2 pro文件 需要添加widgets > QT quick …...
Python快速入门 —— 第五节:接口开发
第五节:接口开发 目标: 学习使用Flask框架开发简单的Web接口,实现对学生信息的增删改查,通过HTTP请求与应用交互。 内容: Flask简介: Flask是一个轻量级的Python Web框架,使用简单,扩展性强,适合快速开发Web应用。安装Flask: pip install flask创建Flask应用: fr…...
利用secureCRT向虚拟机发送文件(secureCRT安装使用教程)
链接: secureCRT 链接:https://pan.baidu.com/s/1CvNYzoBbLVkyYNFq7hrT0g 提取码:5974 链接: secureCRT安装使用教程 链接:https://pan.baidu.com/s/1Bbi7SqyJBere8G53BCYL5A 提取码:xjw1...
AI杂七杂八系列(1)——工程篇
1. 远程服务器无法登录问题 2. 内存溢出解决方法 3. Padding 4. try...except...处理异常报错 5. view、expand、repeat、transpose、permute和squeeze、unsqueeze的区别 1. 远程服务器无法登录问题 权限可能是root权限,修改权限 用户权限: sudo c…...
学习大数据DAY58 增量抽取数据表
作业 1 SQL 优化的常见写法有哪些 - 面试经常被问 使用索引:合理创建和使用索引是提高查询效率的关键。索引可以加速数据的检 索速度,但是索引也会占用额外的存储空间,并且在插入、删除和更新操作时会 有额外的开销。 避免全表扫描&…...
HTTPTomcat
HTTP&Tomcat&Servlet 今日目标: 了解JavaWeb开发的技术栈理解HTTP协议和HTTP请求与响应数据的格式掌握Tomcat的使用掌握在IDEA中使用Tomcat插件 1,Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网,也称为万维网(www),…...
Python数据分析-Matplotlib快速入门
一、pyplot 二、绘图 1.绘制x和y的点 2.无线绘图 3.多点 4.默认x点 三、标记 1.标记 2.参考 3.格式化字符串 4.尺寸 5.颜色 四、线条 1.线形 两个都是设置虚线 2.更短的语法 3.线参考 4.线条颜色 5.线宽度 6.多条线 也可以 五、标签 1.为绘图创建标签 2.为绘图设置标题 3…...
重塑在线软件开发新纪元:集成高效安全特性,深度解析与评估支持浏览器在线编程的系统架构设计
目录 案例 【题目】 【问题 1】(13 分) 【问题 2】(12 分) 【答案】 【问题 1】解析 【问题 2】解析 相关推荐 案例 阅读以下关于软件架构设计与评估的叙述,回答问题1和问题2。 【题目】 某公司拟开发一套在线软件开发系统,支持用户通过浏览器…...
【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】003 - vmlinux.lds 链接脚本文件源码分析
【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】003 - vmlinux.lds 链接脚本文件源码分析 系列文章汇总:《鸿蒙OH-v5.0源码分析之 Uboot+Kernel 部分】000 - 文章链接汇总》 本文链接:《【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】003 - vmlinux.lds 链接脚本文件源码分析》 …...
MongoDB实现高级RAG:Parent-Document检索技术详解
MongoDB实现高级RAG:Parent-Document检索技术详解 引言 在人工智能和自然语言处理领域,检索增强生成(Retrieval-Augmented Generation, RAG)技术正在迅速发展。本文将介绍一种更高级的RAG实现方式:Parent-Document检索。我们将探讨如何使用…...
胡学乱想----前端知识点(css色彩)
1. margin 属性 简写 margin 属性有两个值时,它将 margin-top 和 margin-bottom 设置为第一个值,并将 margin-left 和 margin-right 设置为第二个值 .marker {width: 200px;height: 25px;background-color: red;margin: 10px auto; }2. rgb 属性 CSS 的 rgb 函数接收红色…...
GEE 案例——利用MODIS数据和NDWI指数进行美国五大湖水体计算和时序分析(直方图统计和面积统计)
目录 简介 MODIS数据 代码 结果 简介 利用MODIS数据和NDWI指数进行水体计算和时序分析(直方图统计和面积统计),这里我们统计了2001-2023年的美国五大湖的水域面积变化情况。 MODIS数据 MODIS/061/MOD09A1数据是由美国宇航局(NASA)的Moderate Resolution Imaging Spe…...
【jvm】记一次hive堆heap内存溢出的排查
先看下java的内存模型 监控jvm工具:visualVM 摘录一下内容: 由c开发的jvm,它巧妙地设计了java的设计理念——即万物皆对象。并设计了这些对象应该如何存储,如何调用,并通过不断迭代设计让对象的存储和回收࿰…...
编译运行 webAssembly(wasm)
环境准备: lunix下docker 参考https://hub.docker.com/r/emscripten/emsdk 拉编译环境 docker pull emscripten/emsdk 编译 随便找个目录,敲下面命令,编译一个webAssembly 程序 # create helloworld.cpp cat << EOF > hellowo…...
Linux bash 关联数组
目录 一. 关联数组定义二. 访问关联数组三. 元素的添加与删除四. 键值对的获取与遍历五. 实际应用5.1 读取封装配置文件内容5.2 收集系统信息 一. 关联数组定义 从 Bash 4.0 开始,Bash 支持关联数组。关联数组允许你将键和值配对,并通过键来访问值&…...
选择排序
一:基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。 解释:就是不断的找到最小的放在最左面,然后缩短数组,…...
SQL数据库(MySQL)
一、在Ubuntu系统下安装MySQL数据库 1、更新软件源,在确保ubuntu系统能正常上网的情况下执行以下命令 sudo apt-get update 2、安装MySQL数据库及相关软件包 # 安装过程中设置root用户的密码 123456 sudo apt-get install mysql-server # 安装访问数据库的客…...
在MindSearch中使用SiliconCloud:全面指南**
随着硅基流动(SiliconFlow)提供的InternLM2.5-7B-Chat服务的免费开放,我们迎来了MindSearch部署的全新篇章。这一服务的免费提供,不仅极大地降低了部署门槛,还为MindSearch的使用者带来了纯CPU版本的便利。本文将为您详…...
C++(2)之Linux多线程服务端编程总结
C之Linux多线程服务端编程读书笔记 Author: Once Day Date: 2023年1月31日/2024年8月23日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: Linux实践…...
【AI视频】复刻抖音爆款AI数字人作品初体验
博客主页: [小ᶻZ࿆] 本文专栏: AI视频 | AI数字人 文章目录 💯前言💯抖音上的爆火AI数字人视频💯注册HeyGen账号💯复刻抖音爆款AI数字人💯最终生成效果💯小结 对比原视频效果:…...
基于Matlab的分布式电源选址定容软件:优化接入点与容量,降低网损与电压越限风险
分布式电源选址定容 软件:Matlab 介绍:在改进的IEEE33节点系统中分布式电源选择最佳接入点和接入容量,以网损和电压越限惩罚为目标进行粒子群优化,能得出最佳接入点和接入容量,接入前后电压变化,基础程…...
终极指南:3天快速上手ALOHA开源双臂机器人系统,从零到实战操作
终极指南:3天快速上手ALOHA开源双臂机器人系统,从零到实战操作 【免费下载链接】aloha 项目地址: https://gitcode.com/gh_mirrors/al/aloha ALOHA(A Low-cost Open-source Hardware System for Bimanual Teleoperation)是…...
TVA:未来无人车间和智能工厂的质检中枢
「本文已用流量券推广,欢迎收藏 关注」当制造业加速迈向智能化,现代企业的竞争已从产能规模转向技术实力与品质管控能力。AI智能体视觉检测系统(TVA)作为智能制造的核心技术之一,正在成为企业构建智能工厂的关键支撑&…...
如何通过智能字体处理实现前端优化:Fontmin实用指南
如何通过智能字体处理实现前端优化:Fontmin实用指南 【免费下载链接】fontmin Minify font seamlessly 项目地址: https://gitcode.com/gh_mirrors/fo/fontmin 问题引入:未优化字体的性能陷阱 在现代前端开发中,字体文件往往成为性能…...
Blender 3MF插件:让3D打印设计流程更智能的5个关键步骤
Blender 3MF插件:让3D打印设计流程更智能的5个关键步骤 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 还在为3D打印文件格式转换而烦恼吗?想象一…...
LoRA训练助手镜像免配置:支持Windows Docker Desktop一键启动
LoRA训练助手镜像免配置:支持Windows Docker Desktop一键启动 1. 镜像简介与核心价值 LoRA训练助手是一个专为AI绘图爱好者和模型训练者设计的智能工具。它基于强大的Qwen3-32B模型构建,能够将你输入的中文图片描述自动转换为规范的英文训练标签。无论…...
如何快速上手BiliTools:2026年最全哔哩哔哩工具箱使用指南
如何快速上手BiliTools:2026年最全哔哩哔哩工具箱使用指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...
Rust 入门:一个写了 6 年 Python 的人,聊聊真实体验和踩坑
上个月我接了个活,写一个日志分析工具,每天处理大概 2000 万行日志。一开始用 Python 写了个原型,跑起来单核吃满、内存飙到 4G,处理完一天的数据要 40 分钟。这玩意儿上线了不得被运维同事骂死? 正好 2026 年了&#…...
快马平台AI助力:十分钟搭建技能学习交互原型
最近在尝试做一个技能学习平台的快速原型,发现用InsCode(快马)平台可以大大缩短开发时间。作为一个非专业前端开发者,我记录下这个十分钟搭建原型的实践过程,希望能给有类似需求的朋友一些参考。 项目构思与框架搭建 首先明确原型需要包含的五…...
Suno AI音乐生成避坑指南:从注册到出片,这5个细节决定你的歌好不好听
Suno AI音乐生成避坑指南:从注册到出片,这5个细节决定你的歌好不好听 第一次用Suno生成音乐时,我对着屏幕上那首旋律生硬、人声机械的"作品"哭笑不得——这和我脑海中的旋律相差十万八千里。直到反复调整了五个关键参数后ÿ…...
