当前位置: 首页 > news >正文

qml与html通信

1. 在qml显示html并通讯

  main.qml


import QtQuick 2.12
import QtQuick.Window 2.12
import QtWebEngine 1.2
import QtQuick.Controls
Window {id:mainWindowwidth: 640height: 480visible: truetitle: qsTr("WebEngine + ECharts (By: GongJianBo1992)")Column {anchors.fill: parentspacing: 10Rectangle {height: mainWindow.height * 0.8  // 占 80% 高度width: mainWindow.widthWebEngineView{id: webViewanchors.fill: parent//@disable-check M7url:"file:///./test.html"}}Button {text: "随机更新销量数据"width: 200height: 40anchors.horizontalCenter: parent.horizontalCenteronClicked: {// 生成随机数据(5个10-100的整数)let newData = [];for (let i = 0; i < 5; i++) {newData.push(Math.floor(Math.random() * 90 + 10));}webView.runJavaScript("updateData(" + JSON.stringify(newData) + ")");}}}
}

html

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>ECharts in QML</title><!-- 引入 ECharts --><script src="echarts.min.js"></script><style>body { margin: 0; overflow: hidden; }  /* 去除边距和滚动条 */#chartContainer { width: 100vw; height: 100vh; }  /* 占满整个视图 */</style>
</head>
<body><div id="chartContainer"></div><script>// 初始化图表const chartDom = document.getElementById('chartContainer');const myChart = echarts.init(chartDom);let option = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},dataZoom: {type: 'inside',  //放大缩小x轴数值},tooltip: {trigger: 'axis',axisPointer: {type: 'cross',label: {backgroundColor: '#6a7985'}}},series: [{data: [820, 932, 901, 934, 1290, 1330, 1320],type: 'line',smooth: true}]};myChart.setOption(option);// 供 QML 调用的更新函数function updateData(newData) {option.series[0].data = newData;myChart.setOption(option);}// 窗口大小变化时自适应window.onresize = () => myChart.resize();</script>
</body>
</html>

python

import sys
from PySide6 import  QtWidgets, QtQml
from PySide6.QtGui import QGuiApplication
import PySide6.QtWebEngineCoreif __name__ == "__main__":# app = QGuiApplication().instance()app = QtWidgets.QApplication(sys.argv)engine = QtQml.QQmlApplicationEngine()engine.load("main.qml")if not engine.rootObjects():sys.exit(-1)sys.exit(app.exec())

image

案例地址 :https://gitee.com/lj-fang/qml-html

http://www.jsqmd.com/news/25858/

相关文章:

  • 2025 年排烟风机厂家最新推荐榜,技术实力与市场口碑深度解析,筛选高性能低噪音优质企业屋顶/双速/离心式/防排烟风机公司推荐
  • 2025 年建筑模型公司最新推荐榜,技术实力与市场口碑深度解析含沙盘、微缩、高端模型品牌
  • Session、Cookie、Token 区别
  • 2025 年聚脲厂家最新推荐榜,技术实力与市场口碑深度解析,精选行业优质企业聚脲防腐/单组分双组分聚脲/MUL 聚脲/聚脲防水公司推荐
  • Flask零基础入门:5步搭建你的第一个Web应用
  • 2025 年红外测温仪厂家最新推荐榜,技术实力与市场口碑深度解析比色/感应加热/高性价比/单晶炉红外测温仪公司推荐
  • 2025 年真空计厂家最新推荐榜,技术实力与市场口碑深度解析,涵盖压阻硅、薄膜硅等多类型产品皮拉尼真空计/单晶炉真空计公司推荐
  • 2025年10月企业网站建设开发公司排行榜:前十名精选
  • 2025年企业网站建设开发公司口碑排行榜Top 10
  • 基于四元数的航天器自适应滑模控制(ASMC)设计
  • 浅记线性同余方程(组)
  • Cookie登录机制
  • 数据结构使用技巧
  • 2025密炼机设备推荐榜:大连华韩橡塑以技术创新与全球布局引领行业发展
  • 系统异步处理机制流程总结
  • 2025年国内小程序开发服务商排行榜Top10推荐
  • 2025年市场上小程序开发公司Top10推荐:江苏云鼎大数据领跑行业
  • 2025年市场上小程序开发公司口碑排行榜单
  • 2025年市场上小程序开发公司Top10权威推荐
  • USB图像采集卡:连接现实与数字世界的便捷桥梁
  • 2025上海单位/小区/商场/办公楼/工厂/住宅/保洁公司服务推荐榜:臣峰环境以场景化定制能力引领行业新发展
  • 基于MATLAB的TV、PM和ROF模型的实现代码
  • 可传参数的3Decharts-gl省市级地图实现(点击具体的省份及可下钻到市级地图)--详细版本
  • danted服务无过滤多出口简单配置
  • 2025灌装/大桶/桶装/纯净/瓶装/水处理设备推荐榜:青州路得自动化以科技创新引领行业升级
  • 都在说国产替代Oracle,那么OCP认证还值得考吗?
  • Affinity Photo 中文版:专业摄影师与创意者的正版图像编辑利器
  • 2025年EVA再生膜厂商权威推荐榜单:EVA塑料膜/EVA超薄布/EVA再生布源头厂家精选
  • 【模板】扩展中国剩余定理(EXCRT)
  • 小杰深度学习(five)——正则化、神经网络的过拟合解决专业的方案