微宝网 微宝网
首页
  • 专题

    • ZYNQ
    • 树莓派
    • 信号处理
    • 硬件
    • 大杂烩
  • 笔记

    • 《Git》
    • 《Qt》
    • 《Python》
转载
产品
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

bitQ

饮马江湖,仗剑走天涯
首页
  • 专题

    • ZYNQ
    • 树莓派
    • 信号处理
    • 硬件
    • 大杂烩
  • 笔记

    • 《Git》
    • 《Qt》
    • 《Python》
转载
产品
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Qml内嵌网页
  • Qwebsocket收发测试
  • Qt
bitQ
2023-12-06

Qml内嵌网页

# Qml内嵌网页

​ 有些HTML原生的应用可利用Qt自带的QtWebView或QtWebEngine直接嵌入到桌面应用中,比如地图应用,不追求性能的情况下将现有的web应用直接嵌入到应用中是非常方便的。这里我将地图网页应用Cesium(3D地图引擎)嵌入到了Qml里面。

​ 虽说方便,但也要解决嵌入和通信这两个问题,这里先解决嵌入web,交互准备采用 websocket,这个下节再说。

​ 开发环境:

​ python3.6.8

​ PyQt5==5.15.4

​ PyQtWebEngine==5.15.5

入口函数:

import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQuick import QQuickView
from PyQt5.QtWebEngine import QtWebEngine

if __name__ == '__main__':
    QtWebEngine.initialize()
    app = QGuiApplication(sys.argv)

    view = QQuickView()
    view.setSource(QUrl.fromLocalFile('main.qml'))  # 替换为你的QML文件路径

    view.show()

    sys.exit(app.exec_())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Qml代码:

import QtQuick 2.15
import QtWebView 1.1
import QtWebEngine 1.8

Item {
    width: 800
    height: 600

    WebEngineView {
        id: webView
        anchors.fill: parent
        url: "index.html"
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

HTML代码:自己准备

#Qml#web
上次更新: 2023/12/06, 13:43:10
Qwebsocket收发测试

Qwebsocket收发测试→

最近更新
01
vivado工程异常
02-20
02
制作微信卡片
02-14
03
vivado工程Git版本控制
12-16
更多文章>
Theme by Vdoing | Copyright © 2023-2025 微宝 | MIT License
鲁ICP备14006596号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式