IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> electron + vuecli + elementplus + python + thrift 制作桌面应用 -> 正文阅读

[JavaScript知识库]electron + vuecli + elementplus + python + thrift 制作桌面应用

安装环境

安装npm

官方:http://nodejs.cn/download/
在这里插入图片描述

安装完成查看nodejs版本
npm -v

安装vuecli

官方:https://cli.vuejs.org/zh/guide/installation.html

# 全局安装vue
npm install -g @vue/cli

# 安装完成查看vue版本
vue --version

创建vue项目

# 打开vueui服务,使用页面进行本机vue管理
vue ui

在这里插入图片描述
在这里插入图片描述
完成创建工作

添加vue-cli-plugin-electron-builder插件

vue-cli-plugin-electron-builder

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加Element Plus运行依赖

Element Plus

在这里插入图片描述
在这里插入图片描述

添加thrift插件

thrift

在这里插入图片描述

官方下载thrift

windows

https://thrift.apache.org/download
可以加到path中这样就可以在cmd中直接进行使用

mac

brew install thrift

验证安装成功

thrift -version

你将得到的工程

在这里插入图片描述
在这里插入图片描述

前端开发

设置electron客户端自定义窗口样式

https://www.electronjs.org/zh/docs/latest/tutorial/window-customization

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加element中的button,并关联到electron的console.log

全局引用elementplus

https://element-plus.org/zh-CN/guide/quickstart.html

// main.ts
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'

const app = createApp(App)

app.use(ElementPlus)
app.mount('#app')

加入button

https://element-plus.org/zh-CN/component/button.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加preload.js文件

https://nklayman.github.io/vue-cli-plugin-electron-builder/guide/guide.html#preload-files
在这里插入图片描述

const path = require('path')
preload: path.join(__dirname, 'preload.js')
# vue.config.js
module.exports = {
    pluginOptions: {
        electronBuilder: {
            preload: 'src/preload.js',
        }
    }
}

添加响应事件

hellowolrd.vue
在这里插入图片描述
preload.js
在这里插入图片描述
background.js

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

开启electronserver,查看样式

在这里插入图片描述

在这里插入图片描述

后端开发

安装python的thrift

pip3 install thrift

在这里插入图片描述

整合开发

参考官网编写thrift接口文档

# 生成py代码
thrift -r --gen py tutorial.thrift
# 生成nodejs代码
thrift -r --gen js:node tutorial.thrift

官方关键字说明

https://thrift.apache.org/docs/idl.html????

官方示例

https://raw.githubusercontent.com/apache/thrift/master/test/ThriftTest.thrift

py示例

https://thrift.apache.org/tutorial/py.html

nodejs示例

https://thrift.apache.org/tutorial/nodejs.html

使用thrift.exe生成python和nodejs的代码

thrift接口定义

electron.thrift

service xiesi
{
    string add(1: i8 arg0, 2: i8 arg1)
}
# 生成py代码
thrift -out ./ -r --gen py electron.thrift
# 生成nodejs代码
thrift -out ./ -r --gen js:node electron.thrift 

python调整部分

py目录结构

在这里插入图片描述

xiesi.py(生成的文件)

代码调整
在这里插入图片描述
main.py

import xiesi
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from thrift.server import TServer


class hello:
    def add(self, arg0: int, arg1: int):
        print("{}_{}".format(arg0, arg1))
        return str(arg0 + arg1)


if __name__ == "__main__":
    handler = hello()
    processor = xiesi.Processor(handler)
    transport = TSocket.TServerSocket(host="127.0.0.1", port=9090)
    tfactory = TTransport.TBufferedTransportFactory()
    pfactory = TBinaryProtocol.TBinaryProtocolFactory()

    server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)

    print("Starting the server...")
    server.serve()
    print("done.")

electron部分

目录结构

在这里插入图片描述

background.js

const thrift = require("thrift");
var xiesi = require('./xiesi.js');
var transport = thrift.TBufferedTransport;
var protocol2 = thrift.TBinaryProtocol;
var connection = thrift.createConnection("localhost", 9090, {
    transport: transport,
    protocol: protocol2
});

connection.on('error', function (err) {
    console.log(err)
});


function handleSayHello(event, message) {
    console.log("main get:" + message)


    if (connection.connected == false) {
        connection = thrift.createConnection("localhost", 9090, {
            transport: transport,
            protocol: protocol2
        });
    }
    // Create a Calculator client with the connection
    var client = thrift.createClient(xiesi, connection);
    client.add(1, 23, function (err, response) {
        console.log(response)
    });

    return "main say hello"
}

效果图

python

在这里插入图片描述

electron

在这里插入图片描述

python 打包

pyinstaller  main.py -p /Users/xxx/WorkStations/vue/electronpy/electron
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:03:56  更:2022-05-24 18:06:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:21:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码