Python WebGUI
Python GUI开发的新选择:
传统的GUI框架开发,如pyqt6,pyside6等框架,太死板,缺乏可定制性,相关依赖又缺失(如浏览器引擎)
页面的交互效果又太少,无法响应式开发,项目打包太大,无法 快速跨平台。
新的解决方法:
网页: 网页很常见,只需要写好页面和逻辑交互,剩下的交给浏览器去渲染即可,
强大的CSS可以做很精美的样式,javascripts可以辅助构成强大的交互,Html可以选择模块化开发,
一个html就是一个模块,一个页面.页面可以多成嵌套
只需要写好web项目,然后由webgui去接管即可,启动应用就打开应用窗口!
from flask import Flask,render_template
app = Flask(__name__)
# 待补充的代码 (flask)
@app.route('/')
def page():
return render_template('页面.html') # 要渲染的应用程序 网页页面
1.使用Flaskwebgui
from flaskwebgui import FlaskUI
# 由flaskwebgui 接管flask项目
ui = FlaskUI(
app=app,
server="flask",
width=940,
height=640,
port=5000,
).run()
if __name__ == '__main__':
ui.run()
2.使用pywebview
from multiprocessing import Process
import webview
def intel(): # 只需要把flask应用的项目 url放入即可
webview.create_window("pywebview", url="http://127.0.0.1:5000", width=1200,height=800)
webview.start()
if __name__ == '__main__':
pipeline = Process(target=intel)
pipeline.start()
app.run(host="0.0.0.0",port=5000)
比较
flaskwebgui 可用选择渲染的浏览器 缺点(宽高单位是像素,不是电脑的尺寸,flask不能设置host,debug, 程序关闭,窗口还在)
pywebview 使用自带浏览器渲染 优点(解决以上问题) 缺点(不能自定义浏览器路径)
性能强劲的Web Gui开发推荐
1. 项目总体 sanic(异步高性能web构建) + pywebview(webgui渲染)
2. 优化 IO操作多使用异步去处理 (asyncio风格)