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

打印 上一主题 下一主题

主题 910|帖子 910|积分 2730

随着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关键代码-登陆页面

  1. <template>
  2.   <div class="login-container">
  3.     <h1>用户登录</h1>
  4.     <form class="login-form">
  5.       <div class="form-group">
  6.         <label>用户名:</label>
  7.         <input type="text"  />
  8.       </div>
  9.       <div class="form-group">
  10.         <label>密码:</label>
  11.         <input type="password" />
  12.       </div>
  13.       <button type="submit" @click="login">登录</button>
  14.     </form>
  15.   </div>
  16. </template>
  17. <script setup>
  18. import {onMounted, getCurrentInstance,ref,computed} from "vue";
  19. import {useStore} from "vuex";
  20. const {proxy} = getCurrentInstance();
  21. const login = async ()=>{
  22.    window.pywebview.api.login('','')
  23. }
  24. </script>
  25. <style lang="scss" scoped>
  26. .login-container {
  27.   max-width: 400px;
  28.   margin: 0 auto;
  29.   padding: 50px 20px;
  30.   box-sizing: border-box;
  31.   text-align: center;
  32. }
  33. .login-form {
  34.   width: 80%;
  35.   margin: 0 auto;
  36. }
  37. .form-group {
  38.   margin-bottom: 20px;
  39.   text-align: left;
  40. }
  41. label {
  42.   display: inline-block;
  43.   width: 100px;
  44. }
  45. </style>
复制代码
四、web关键代码-首页

  1. <template>
  2.   <el-table :data="tableData" style="width: 100%">
  3.     <el-table-column prop="date" label="Date" width="180" />
  4.     <el-table-column prop="name" label="Name" width="180" />
  5.     <el-table-column prop="address" label="Address" />
  6.   </el-table>
  7. </template>
  8. <script setup>
  9.     import {onMounted, getCurrentInstance,ref,computed} from "vue";
  10.     import {useStore} from "vuex";
  11.     const {proxy} = getCurrentInstance();
  12.     const tableData = [
  13.       {
  14.         date: '2016-05-03',
  15.         name: 'Tom',
  16.         address: 'No. 189, Grove St, Los Angeles',
  17.       },
  18.       {
  19.         date: '2016-05-02',
  20.         name: 'Tom',
  21.         address: 'No. 189, Grove St, Los Angeles',
  22.       },
  23.       {
  24.         date: '2016-05-04',
  25.         name: 'Tom',
  26.         address: 'No. 189, Grove St, Los Angeles',
  27.       },
  28.       {
  29.         date: '2016-05-01',
  30.         name: 'Tom',
  31.         address: 'No. 189, Grove St, Los Angeles',
  32.       },
  33.     ]
  34. </script>
  35. <style lang="scss" scoped>
  36. </style>
复制代码
五、pywebview关键代码

  1. import webview
  2. from controller.IndexController import IndexController
  3. class Api():
  4.     def destroy(self):
  5.         window.destroy()
  6.     def minimize(self):
  7.         window.minimize()
  8.     def login(self, username, password):
  9.         print(username, '  ', password)
  10.         main = IndexController(username)
  11.         main.start()
  12.         self.destroy()
  13. if __name__ == '__main__':
  14.     api = Api()
  15.     # js_api 获得 api 实例
  16.     window = webview.create_window('登录', 'http://localhost:3004/#/login', js_api=api, resizable=False, width=450,  frameless=False, shadow=True, height =670, background_color="#E4FBF0")
  17.     webview.start()
  18.     # webview.start(debug=True)
复制代码
六、拿到代码执行如下命令

1、前端(必须先安装nodejs,百度自行先安装),进入到pywebview-desktop-app\web目录,执行如下命令,下载依靠
  1. npm install
复制代码
2、运行前端(在目录pywebview-desktop-app\web下),执行如下命令
  1. npm run dev
复制代码
3、启动python客户端,在pywebview-desktop-app\controller目录,运行LoginController.py文件
七、效果图如下



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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表