qml学习之qwidget与qml结合使用并调用信号槽交互
学习qml系列之一
说明:
学习qml系列之qwiget和qml信号槽的交互使用,并在qwidget中显示qml界面
在qml中发送信号到qwidget里
在qwidget里发送信号给qml
在qwidget里面调用qml界面方式
方式一:使用QQuickView
这个是Qt5.0中提供的一个类,继承自QQickWindow中,用来显示qt quick用户界面:
QQuickView *view = new QQuickView;
view->setSource(QUrl::fromLocalFile("main.qml"));
view->show();
QQuickView基于QWindow,需要转换成 QWidget才能使用,还需要如下转换
QQuickView *pView = new QQuickView();QWidget *Widget = QWidget::createWindowContainer(pView, this);pView->setResizeMode(QQuickView::SizeRootObjectToView);pView->setSource(QUrl("qrc:/main.qml"));
这样后面能直接调用由qml转换成的QWidget界面了。
方式二:使用QQuickWidget
QQuickWidget *pWidget = new QQuickWidget();
pWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
pWidget->setSource(QUrl("qrc:/main.qml"));
该方法在Qt5.3中提供的一个类,继承自QWidget,是QQuickWidget一个很方便的包装器,用于显示Qt Quick用户界面
源码:
qml文件源码:
import QtQuick 2.1Rectangle {id: rootcolor: "green"width: 200height: 200// 发送给 Qt Widgets 的信号signal qmlSignal// 从 Qt Widgets 接收到的信号signal cSignal//信号的名称不能以大写开头Text {id: myTexttext: "Click me"font.pointSize: 14anchors.centerIn: parent}MouseArea {anchors.fill: parentonClicked: qmlSignal()}// 信号处理程序(处理从 Qt Widgets 接收到的信号)onCSignal: {root.color = "blue"myText.text = "Call the qml signal handler"}
}
注意:qml中信号的名称不能以大写开头,然后添加到Qt的资源文件中
添加qml quick
QT += core gui qml quick
#include "widget.h"
#include "ui_widget.h"
#include "widget.h"
#include <QQuickView>
#include <QVBoxLayout>
//#include <QQuickWidget>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{
// ui->setupUi(this);resize(300, 300);// 方式一QQuickView *pView = new QQuickView();QWidget *pWidget = QWidget::createWindowContainer(pView, this);pView->setResizeMode(QQuickView::SizeRootObjectToView);pView->setSource(QUrl("qrc:/main.qml"));// 方式二
// QQuickWidget *pWidget = new QQuickWidget();
// pWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
// pWidget->setSource(QUrl("qrc:/main.qml"));m_pButton = new QPushButton(this);m_pButton->setText("Qt Widgets...");QVBoxLayout *pLayout = new QVBoxLayout();pLayout->addWidget(pWidget);pLayout->addWidget(m_pButton);pLayout->setSpacing(10);pLayout->setContentsMargins(10, 10, 10, 10);setLayout(pLayout);// QML 与 Qt Widgets 通信QObject *pRoot = (QObject*)pView->rootObject();
// QObject *pRoot = (QObject*)pWidget->rootObject();if (pRoot != NULL) {connect(pRoot, SIGNAL(qmlSignal()), this, SLOT(receiveFromQml()));connect(m_pButton, SIGNAL(clicked(bool)), pRoot, SIGNAL(cSignal()));}}Widget::~Widget()
{delete ui;
}void Widget::receiveFromQml()
{m_pButton->setText("Call the C++ slot");
}
由于我使用的版本时5.14.1版本,用的QQuickView类
效果如下图



相关文章:
qml学习之qwidget与qml结合使用并调用信号槽交互
学习qml系列之一说明: 学习qml系列之qwiget和qml信号槽的交互使用,并在qwidget中显示qml界面 在qml中发送信号到qwidget里 在qwidget里发送信号给qml 在qwidget里面调用qml界面方式 方式一:使用QQuickView 这个是Qt5.0中提供的一个类&…...
【 华为OD机试 2023】 组装新的数组(C++ Java JavaScript Python)
文章目录 题目描述输入描述输出描述备注用例题目解析C++JavaScriptJavaPython题目描述 给你一个整数M和数组N,N中的元素为连续整数,要求根据N中的元素组装成新的数组R,组装规则: R中元素总和加起来等于MR中的元素可以从N中重复选取R中的元素最多只能有1个不在N中,且比N中…...
【洛谷 P2089】烤鸡(循环枚举)
烤鸡 题目背景 猪猪 Hanke 得到了一只鸡。 题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 101010 种配料(芥末、孜然等)…...
windows10安装ubantu双系统
windows10安装ubantu双系统 文章目录windows10安装ubantu双系统一、安装前准备1.前期说明2.制作U盘启动器3.设置硬盘分区相关4.设置给ubantu系统的硬盘大小,设置为未分配(删除卷)二、进行安装1.设置bios相关2.进入bios启动界面选择U盘安装3.进…...
【华为OD机试 2023】 人数最多的站点/小火车最多人时所在园区站点(C++ Java JavaScript Python)
文章目录 题目描述输入描述输出描述用例题目解析C++JavaScriptJavaPython励志做全网最全、解法最多的华为OD机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。每篇文章都有详细的结题步骤。有问题,随时解答。😁😁😁😁 目前为了造福广大…...
2024届暑期实习实录(阿里云大数据研发平台)
1. 项目介绍(介绍一下你觉得有挑战的项目 (1)项目的痛点需求(配置变更的痛点、你做的目的是什么?) 思考方向:业务背景,用户需求;产品发展,产品现有局限问题…...
空口协议probe req和probe rsp 、auth req和auth rsp 、assoc req和assoc rsp讲解
我们经常可以看到抓到的报文主要有三种:probe req和probe rsp 、auth req和auth rsp 、assoc req和assoc rsp 。 建立联结的三个阶段 相互发现阶段:probe req和probe rsp probe是探测的意思 相互了解阶段:auth req和auth rsp auth是认证的缩写 建立关…...
vscode ssh一直卡在wget的解决方案
vscode ssh一直卡在wget的解决方案找到commit_id 在服务器下点进该目录 .vscode-server\bin 一般日期最新的那一串就是我们需要的commit_id下载vscode-server-linux-x64.tar https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable 将加粗部分替换…...
【Python学习笔记】第二十五节 Python MySQL
Python 连接到 MySQL 数据库有几种不同的连接方法,而且不是所有的方法都能与不同的操作系统很好地配合.MySQL connector/Python模块是Oracle支持的官方驱动,用于通过Python连接MySQL。该连接器完全是Python语言,而mysqlclient是用C语言编写的…...
折叠屏手机自带的屏幕表面层为什么不能自己撕?
计划入手折叠屏手机的小伙伴看过来,因为折叠屏手机外观的特殊形态,在日常使用中与普通直板手机屏幕的养护还是有着很大的不同,比如直板机入手后新机开箱撕膜这个操作,对于折叠屏手机来说,万万不可!除此之外…...
20.hadoop系列之Yarn资源调度器
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序 1.Yarn基础架构 Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Contai…...
206页16万字城市运行“一网统管”体系建设项目需求报告
本资料来源网络,知识分享,仅供个人学习,请勿商用。完整资料领取见文末,部分资料内容: 第 一 章 应用场景示例 一.1 一卡通人员管理针对企业厂区、办公楼等场所人员出入频繁、安保问题多样化、管理环节复杂等现状&#…...
【JS】数组Array的使用
arr.length 3 通过设置数组长度,实现截取数组,改变原数组 map 循环遍历数组,不改变原数组,返回一个新的数组(可用变量接收) forEach 循环遍历数组,不改变原数组 join 把数组转化为字符串&…...
2023年,软件测试怎么样?
2022年因为各种不可抗力原因,大厂裁员,失业等等频频受到关注。 不解释,确实存在,各行各业都很难,但是,说软件测试行业不吃香,我还真不认同(不是为培训机构说好话,大环境…...
【学习笔记】NOMURA Programming Competition 2020
C - Folia 不难想到自底向上确定树的形态。可能要多尝试一下 一开始想错了好几个地方,服了 假设某一层有XXX个节点,那么上一层可能有⌈X2⌉,⌈X2⌉1,...,X\lceil\frac{X}{2}\rceil,\lceil\frac{X}{2}\rceil1,...,X⌈2X⌉,⌈2X⌉1,...,X个节点&…...
iis下常用程序的伪静态规则列表(包括wordpress、thinkphp)
shopex discuz2.0 discuz2.5 discuz3.x 淘宝客 ecshop phpwind参照http://www.west.cn/faq/list.asp?unid797通过主机面板设置即可 wordpress设置: 第一步: 1.新建一个“chineseurl.php”文件:在里面写入以下代码上传到wordpress安装目录。…...
【Python语言基础】——Python Select From
Python语言基础——Python Select From 文章目录 Python语言基础——Python Select From一、Python Select From一、Python Select From 从表中选取 如需从 MySQL 中的表中进行选择,请使用 “SELECT” 语句: 实例 从表 “customers” 中选取所有记录,并显示结果: import m…...
数据增广真有那么神奇吗?
作者:皮皮雷 来源:投稿 编辑:学姐 论文题目 How Effective is Task-Agnostic Data Augmentation for Pretrained Transformers? 论文作者 S. Longpre, Y. Wang, and C. DuBois 论文发表于 2020 EMNLP findings 摘要 任务无关的数据增广…...
常用基础硬件知识 - 判断MOS管导通
目录1. 概述2. 判断MOS管的导通1. 概述 本文主要记录下基础的硬件知识,方便自己查阅。 2. 判断MOS管的导通 在产品硬件设计中,有时需要程序控制一些电源使能。 1.原理图已经标出了G极(gate)—栅极、S极(source)—源极、D极(drain)—漏极。 如果没有标…...
2023金三银四,测试人还能找到好工作吗?
嫌看文章麻烦的朋友点这里:2023最新软件测试行业变革细谈之我们该如何应对? 按照往年的惯例,春节后复工的 3 月、4 月是人员跳槽最频繁的时候,俗称“金三银四”。然而,市场大环境的影响,很多行业感受到了一…...
如何快速配置开源Dell G15散热控制中心:面向新手的完整实战指南
如何快速配置开源Dell G15散热控制中心:面向新手的完整实战指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 还在为Dell G15笔记本玩游戏时突然…...
Qwen-Ranker Pro在电商搜索中的应用:解决‘相关性偏差’实战
Qwen-Ranker Pro在电商搜索中的应用:解决‘相关性偏差’实战 1. 为什么电商搜索总“猜不中”用户真正想要的? 你有没有遇到过这样的情况:在某电商平台搜“轻便透气运动鞋”,结果首页却出现一堆厚重的登山靴?或者输入…...
Nanbeige 4.1-3B保姆级教程:修复Streamlit默认样式冲突的CSS注入技巧
Nanbeige 4.1-3B保姆级教程:修复Streamlit默认样式冲突的CSS注入技巧 1. 项目背景与问题定位 Nanbeige 4.1-3B的像素冒险聊天终端是一个极具创意的对话前端实现,它通过自定义CSS彻底改造了Streamlit的默认外观。但在实际开发中,我们发现Str…...
LeetCode热题100 在排序数组中查找元素的第一个和最后一个位置
题目描述 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1&…...
南北阁Nanbeige 4.1-3B实战:基于STM32CubeMX的嵌入式AI项目文档生成
南北阁Nanbeige 4.1-3B实战:基于STM32CubeMX的嵌入式AI项目文档生成 1. 引言:当嵌入式开发遇上AI助手 如果你用过STM32CubeMX,肯定对那个图形化界面又爱又恨。爱的是,点点鼠标就能配置好时钟树、外设引脚,生成初始化…...
Qwen3数据分析与可视化:利用Matlab评估对齐效果指标
Qwen3数据分析与可视化:利用Matlab评估对齐效果指标 最近在做一个关于多模态大模型的项目,其中涉及到评估模型生成的字幕时间戳是否准确。我们选用了Qwen3模型,但光看它输出的结果,很难量化地说它到底“好”还是“不好”。这时候…...
SD3.5 FP8镜像效果展示:高清质感图片生成作品集,效果惊艳
SD3.5 FP8镜像效果展示:高清质感图片生成作品集,效果惊艳 1. 新一代图像生成标杆 Stable Diffusion 3.5 (SD 3.5) FP8镜像代表了当前文本到图像生成技术的顶尖水平。这个经过优化的版本在保持SD3.5原有强大功能的基础上,通过FP8量化技术实现…...
ConvNeXt 改进 | 融合篇:引入SCSA空间和通道协同注意力模块(SCI 期刊 2024),SCSA注意机制 + LWGA_Block,实现涨点,二次创新CNBlock结构,独家首发
本文教的是方法,也给出几种改进方法,二次创新结构,百变不离其宗,一文带你改进自己模型,科研路上少走弯路。 ⚡⚡改进1(引入 SCSA 注意力机制) SCSA通过结合空间注意力(SMSA)和通道注意力(PCSA)来提升模型在多语义特征学习中的表现。其核心目标是减小多语义特征之间…...
Qwen3.5-9B多场景:Qwen3.5-9B在内容审核、教育辅导、产品设计中的复用模式
Qwen3.5-9B多场景:Qwen3.5-9B在内容审核、教育辅导、产品设计中的复用模式 1. 模型概述与核心能力 Qwen3.5-9B是阿里云推出的新一代多模态大语言模型,在多个关键领域实现了性能突破。该模型基于统一视觉-语言基础架构,通过创新的训练方法在…...
Vite 7.0 性能优化指南:Rolldown 集成与 advancedChunks 配置详解
Vite 7.0 性能优化实战:Rolldown 集成与 advancedChunks 深度配置 如果你正在构建一个大型前端项目,是否遇到过这样的困扰:每次代码变更后的构建时间越来越长,产出的 chunk 文件杂乱无章,首屏加载性能始终无法突破瓶颈…...
