资讯专栏INFORMATION COLUMN

Python使用pywebview开发设计桌面应用的全流程

89542767 / 1666人阅读

  当运用桌面应用程序时,有没有有一瞬间,想学习下桌面应用程序开发设计?接下来本文关键为大家介绍了有关Python使用pywebview开发设计桌面应用的资料,必须的小伙伴可以借鉴一下


  序言


  平时用过Eel做出来的桌面应用感觉就已经够屌了,不过因为Eel是启用Chrome,常常出现一些小事情,例如窗口大小设定后有时不起作用,右键新建菜单没法禁止使用(一眼就能看出来就是一个web).并且试了用pyinstaller装包后文档很大,昨晚游逛就发现了这个比Eel更强解决方案pywebview,更轻巧,可自定设置大量.因为pywebview是可以直接启用系统软件本身浏览器(Win10启用Edge,Win7启用IE),因而非常适合装包公布.官方网站:pywebview.flowrl.com/


  非常简单运用入门


  先装好车轮子

  pipinstallpywebview


  完成一种内嵌式百度主页的winform程序流程,固定不动窗口大小,严禁挑选文本


  """
  main.py
  """
  importwebview
  window=webview.create_window(
  title='搜一下,都是广告宣传',
  url='http://www.baidu.com',
  width=850,
  height=600,
  resizable=False,#固定不动窗口大小
  text_select=False,#严禁挑选文字部分
  confirm_close=True#关掉时提醒
  )
  webview.start()

01.png

  不管是打开速度,或是屏幕清晰度都比Eel好许多.撤出提醒的对话框默认设置可以看到英语,还可以本土化一下下,界定个词典发送给webview.start()当启动参数就可以了.


  chinese={
  'global.quitConfirmation':u'确定关闭?',
  }
  webview.start(localization=chinese)

02.png

  高级运用


  在HTML前端界面中启用Python里的函数公式


  Http是由Flask所提供的,直接把Flask实例化对象app发送给url主要参数就可以了


  importwebview
  fromflaskimportFlask,render_template
  #创建对象flask目标
  app=Flask(__name__)
  #界定路由器3D渲染模版
  app.route('/')
  defindex():
  returnrender_template('/index.html')
  #配备pywebview关掉提醒的英文翻译
  chinese={
  'global.quitConfirmation':u'确定关闭?',
  }
  #发送给前面的api目标,界定了这个能通过js调用撤出现阶段运用的函数公式
  classApi:
  def__init__(self)->None:
  self._window=None
  defset_window(self,window):
  self._window=window
  defquit(self):
  self._window.destroy()
  if__name__=='__main__':
  #创建对象Api类
  api=Api()
  window=webview.create_window(
  title='我是文章标题',
  url=app,
  fullscreen=True,#以全屏模式运行
  #width=760,#自定窗口大小
  #height=390,
  #resizable=False,#固定不动窗口大小
  text_select=False,#严禁挑选文字部分
  confirm_close=True,#关掉时提醒
  js_api=api#将上面创建对象后的Api目标发送给前端js启用
  )
  #--划重点--务必记得需要将上面创建的window目标再通过函数公式发送给创建对象后的api目标
  api.set_window(window)
  #启动程序
  webview.start(localization=chinese)


  前面写一个id为exit的button,jquery给它绑定个点击的事件来调用api函数公式方法,注意这里的pywebview.api是在pywebview的运用启动后自动注入到现阶段浏览器窗口里的全局对象,python中所写的函数公式就绑定在它接下来.


  $("#exit").click(function(){
  pywebview.api.quit();
  })


  装包成单个EXE文档


  以前用pyinstaller手工制作装包太费劲了,发觉个图形界面配置pyinstaller开展装包的一种手段:auto-py-to-exe,用pip装一下下,之后就可以自动运行了


  pipinstallauto-py-to-exe
  #运行专用工具
  auto-py-to-exe


  这专用工具竟然是用eel所写的,嘿嘿...


  建议使用单文件目录形式进行装包,单文件得话可能对编程代码所涉及到的到途径提及的地区出问题,坑有些大,不建议使用.


  需注意需在附件格式一块儿设定里将flask涉及的模版,静态文件,还有其他的例如sqlite数数据库文档都加入进去了

03.png

  判定网页页面中pywebview.api目标是不是载入取得成功


  现在又写了个小应用,启用的当地的html文件,希望在网页页面开启时直接调用pywebview.api中关系的python函数,但由于页面上立即用js浏览pywebview.api目标的话就会出错找不到男朋友,又翻了一下官方文档,发觉应该给window对象添加个事情监视pywebviewready,实例编码:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129082.html

相关文章

  • Python使用pywebview开发设计桌面应用的全流程

      当运用桌面应用程序时,有没有有一瞬间,想学习下桌面应用程序开发设计?接下来本文关键为大家介绍了有关Python使用pywebview开发设计桌面应用的资料,必须的小伙伴可以借鉴一下  序言  平时用过Eel做出来的桌面应用感觉就已经够屌了,不过因为Eel是启用Chrome,常常出现一些小毛病,例如窗口大小设定后有的时候不起作用,右键新建菜单没法禁止使用(一眼就能看出来是一个web).并且试了用...

    89542767 评论0 收藏0
  • 最流行的编程语言 JavaScript 能做什么?

    摘要:首先很遗憾的一点是,虽然是最好的语言,但是它不是最流行的语言。属于配置比较高的硬件,而低配的呢三星设计了引擎,它能够运行在小于内存上,且全部代码能够存储在不足的只读存储上。你觉得还能做什么 首先很遗憾的一点是,PHP虽然是最好的语言,但是它不是最流行的语言。showImg(https://segmentfault.com/img/bVvqTs);同时对不起的还有刚刚在4月TIOBE编程...

    褰辩话 评论0 收藏0
  • 最流行的编程语言 JavaScript 能做什么?

    摘要:首先很遗憾的一点是,虽然是最好的语言,但是它不是最流行的语言。属于配置比较高的硬件,而低配的呢三星设计了引擎,它能够运行在小于内存上,且全部代码能够存储在不足的只读存储上。你觉得还能做什么 首先很遗憾的一点是,PHP虽然是最好的语言,但是它不是最流行的语言。showImg(https://segmentfault.com/img/bVvqTs);同时对不起的还有刚刚在4月TIOBE编程...

    Alan 评论0 收藏0
  • Ubuntu下使用Django搭建前后端分离的全栈项目

    摘要:开发工具使用了其他详情配置请见更新到留言板第一步,在环境中搭建项目一开始我们会先使用静态文件做配载,随着项目进行我们将会逐步展现前后端分离的做法,并使用搭建一个完整的电商网站本文将不概述环境的搭配,以及下环境开发,我认为你已经了解,并可 README Ubuntu16.04;Python3.6.2;Django1.11;开发工具使用了pycharm(Ubuntu); 其他详情配置请见G...

    BaronZhang 评论0 收藏0
  • Ubuntu下使用Django搭建前后端分离的全栈项目

    摘要:开发工具使用了其他详情配置请见更新到留言板第一步,在环境中搭建项目一开始我们会先使用静态文件做配载,随着项目进行我们将会逐步展现前后端分离的做法,并使用搭建一个完整的电商网站本文将不概述环境的搭配,以及下环境开发,我认为你已经了解,并可 README Ubuntu16.04;Python3.6.2;Django1.11;开发工具使用了pycharm(Ubuntu); 其他详情配置请见G...

    VioletJack 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<