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

python使用pywebview集成vue3和element-plus开发桌面系统框架

随着web技术越来越成熟,就连QQ的windows客户端都用web技术来开发,所以在未来,web技术来开发windows桌面软件也会越来越多,所以在此发展驱动之下,将最近流程的python与web技术相结合,使用vue3和element-plus、vue-router、saas(CSS扩展语言),来开发桌面管理系统,也是一个不错的选择。最主要的是两者技术门槛比较低,而且开发效率也很快,同时也可以做出漂亮的界面。

一、技术背景

python:版本号为3.7(你也可以换成高版本,同样支持)

vue3:版本为3.4.29

element-plus:版本号:element-plus

vue-router:版本号为4.4.0

sass:1.53.0

操作系统为:windows10

二、先看效果

三、web关键代码-登陆页面

<template><div class="login-container"><h1>用户登录</h1><form class="login-form"><div class="form-group"><label>用户名:</label><input type="text"  /></div><div class="form-group"><label>密码:</label><input type="password" /></div><button type="submit" @click="login">登录</button></form></div>
</template><script setup>
import {onMounted, getCurrentInstance,ref,computed} from "vue";
import {useStore} from "vuex";
const {proxy} = getCurrentInstance();
const login = async ()=>{window.pywebview.api.login('','')
}
</script>
<style lang="scss" scoped>
.login-container {max-width: 400px;margin: 0 auto;padding: 50px 20px;box-sizing: border-box;text-align: center;
}
.login-form {width: 80%;margin: 0 auto;
}
.form-group {margin-bottom: 20px;text-align: left;
}
label {display: inline-block;width: 100px;
}
</style>

四、web关键代码-首页

<template><el-table :data="tableData" style="width: 100%"><el-table-column prop="date" label="Date" width="180" /><el-table-column prop="name" label="Name" width="180" /><el-table-column prop="address" label="Address" /></el-table>
</template><script setup>import {onMounted, getCurrentInstance,ref,computed} from "vue";import {useStore} from "vuex";const {proxy} = getCurrentInstance();const tableData = [{date: '2016-05-03',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-04',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-01',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},]
</script>
<style lang="scss" scoped></style>

五、pywebview关键代码

import webviewfrom controller.IndexController import IndexControllerclass Api():def destroy(self):window.destroy()def minimize(self):window.minimize()def login(self, username, password):print(username, '  ', password)main = IndexController(username)main.start()self.destroy()if __name__ == '__main__':api = Api()# js_api 获得 api 实例window = webview.create_window('登录', 'http://localhost:3004/#/login', js_api=api, resizable=False, width=450,  frameless=False, shadow=True, height =670, background_color="#E4FBF0")webview.start()# webview.start(debug=True)

六、拿到代码执行如下命令

1、前端(必须先安装nodejs,百度自行先安装),进入到pywebview-desktop-app\web目录,执行如下命令,下载依赖

npm install

2、运行前端(在目录pywebview-desktop-app\web下),执行如下命令

npm run dev

3、启动python客户端,在pywebview-desktop-app\controller目录,运行LoginController.py文件

七、效果图如下

下载地址:链接:https://pan.baidu.com/s/1TH_UQx7sblW6O_6K6ZPqlA?pwd=thfk 
提取码:thfk

http://www.lryc.cn/news/392054.html

相关文章:

  • C++线程的使用
  • 算法库应用--寻找最长麦穗
  • ython 使用 cx_Freeze 打包,不想要打包文件中能直接看到依赖的代码,如何处理
  • 某DingTalk企典 - Token
  • 手写一个类似@RequestParam的注解(用来接收请求体的参数)
  • 【遇坑笔记】Node.js 开发环境与配置 Visual Studio Code
  • 【ajax实战07】文章筛选功能
  • promise.all和promise.race的区别
  • Python爬取豆瓣电影+数据可视化,爬虫教程!
  • 初阶数据结构二叉树练习系列(1)
  • 【selenium 】操作元素
  • 【MySQL】事务实现原理
  • 面向物联网行业的异常监控追踪技术解决方案:技术革新与运维保障
  • 守护厨房空气:全面排查与修复油烟净化器跳闸问题
  • 【微服务网关——https与http2代理实现】
  • mssql查询历史执行过的语句日志
  • 【LeetCode】每日一题:买卖股票的最佳时机 II
  • 【TS】TypeScript 联合类型详解:解锁更灵活的类型系统
  • kali改回官方源后更新失败
  • Mysql 左关联(LEFT JOIN)
  • [笔记]小米CyberDog机器狗仿真调试记录
  • 第十四届蓝桥杯省赛C++B组G题【子串简写】题解(AC)
  • 实现Java Web应用的高性能负载均衡方案
  • 医学预测模型web APP的制作建议
  • gitlab每日备份以及restore
  • 2024-07-05 base SAS programming学习笔记9(variables)
  • kafka--发布-订阅消息系统
  • 2024最新软件测试面试题。内附答案+文档
  • 新加坡很火的slots游戏代投Facebook广告新流量趋势
  • C++ 实现字符串逆序