PYQT_VUE_NATIVE框架

在这里插入图片描述

介绍

数据交互方式: QWebChannel,web框架: vue-element-admin,QT框架 QWebEngineView

web框架 通过QWebChannel封装的组件 调用QT程序, QT 通过信号返回给前端。

通过此框架,前端与PYQT的交互会非常简单!,可以轻易的进行混合开发
在这里插入图片描述

项目地址

QT端pyqt_vue_native,下载后可直接运行main.py,web页面已打包进去了
web端pyqt-vue

开发模式和流程

组件式的开发 结构如下
在这里插入图片描述
开发方式: 在view中编写业务代码,再在main中载入模块
main.py

#!/usr/local/bin/python3
# -*- coding: utf-8 -*-

"""
@File    : main.py
@Author  : Link
@Time    : 2021/4/17 9:49
"""

import sys

from PyQt5.QtWebChannel import QWebChannel
from PyQt5.QtWidgets import QApplication

from frame import Main  # 需要传入的参数 一个QObject和一个QWebChannel
from frame import MainInterFace  # QObject给QWebChannel发送信号

# -----------------------------------------------  # 需要自己编写的区域
# 从custom引入业务组件
from custom.view.table import A  # 测试
from custom.view.liv_view import TO_LIV_KEY

# 业务组件注册到MainInterFace
class MyMainInterFace(MainInterFace):

    def __init__(self):
        super(MyMainInterFace, self).__init__()
        TO_LIV_KEY(self)
        A(self)


myObj = MyMainInterFace()
channel = QWebChannel()
channel.registerObject("bridge", myObj)
# -----------------------------------------------

class Application(QApplication):
    def __init__(self, argv):
        QApplication.__init__(self, argv)
        QApplication.setStyle('Fusion')


if __name__ == '__main__':
    app = Application(sys.argv)
    myWin = Main(myObj, channel)  # QT Window 需要传入 MyMainInterFace(), QWebChannel()
    myWin.show()
    sys.exit(app.exec_())

Logo

前往低代码交流专区

更多推荐