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 月是人员跳槽最频繁的时候,俗称“金三银四”。然而,市场大环境的影响,很多行业感受到了一…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...