Skip to content

如何使用 Qt 和 Flask 开发一个本地应用?

约 449 字大约 2 分钟

前后端

2021-10-15

项目结构

root

dist# 文件夹内为前端内容, 其中包括前端的 HTML, CSS, JS 等内容

css

fonts

img

js

favicon.ico

index.html

pyside_flask_desk

__init__.py# 创建 Qt 窗口, 并使用线程启动 Flask

app.py

run.py# 程序主入口

代码

Qt-Flask-App

root

run.py

pyside_flask_desk

__init__.py

app.py

root/run.py
#! -*- coding:utf-8 -*-
import sys
import os
from app import *
from PySide2.QtCore import QFileInfo
from pyside_flask_desk import init_gui

sys.path.append((os.path.dirname(os.path.abspath(os.path.dirname(__file__)))).replace("\\", "/"))


if __name__ == '__main__':
    root = QFileInfo(__file__).absolutePath()
    init_gui(app, port=5000, window_title="Qt-Flask-App", icon=root + "/dist/favicon.ico") # icon 的路径须使用绝对路径
root/pyside_flask_desk/__init__.py
root/app.py
from flask import Flask, render_template

# 其中 static_url_path='' 不可缺少, 是由于前端 HTML 中将资源加载的目录写死为根目录
# static_folder='dist', template_folder='dist' 根据具体项目的实际情况写 HTML, CSS 等文件在的文件夹即可
# 该文件为 Flask 接口主文件

app = Flask(__name__, static_url_path='', static_folder='dist', template_folder='dist')

app.config['EXPLAIN_TEMPLATE_LOADING'] = True

# 路由
@app.route('/')
def greet():
    return render_template('index.html')

最终效果

Qt-Flask-App-demo-homepage
Qt-Flask-App-demo-homepage

贡献者

更新日志

2025/5/13 01:14
查看所有更新日志
  • 711c3-fix(docs): wrong filepath
  • 9329b-improve(docs): use file-tree to show code
  • 8c962-improve(docs): use chinese punctuation
  • 6cd3c-improve(docs): delete extra whitespace and blank lines
  • c1c02-modify(docs): remanage folders and rename files
  • 90e37-docs: update docs
  • a5059-整理图片和文章
  • 3d6e6-更改navbar
  • 2d37d-整理文章代码格式
  • 0c060-升级主题+整理文章格式

Keep It Simple