gpt4 book ai didi

python - QtWebkit 和 Flask 制作原生桌面应用

转载 作者:太空宇宙 更新时间:2023-11-04 05:39:49 27 4
gpt4 key购买 nike

我是 python 的新手。我正在寻找通过 QtWebkit 和 Flask 创建桌面应用程序的新方法。

想法是:与其在用户浏览器上打开 Flask 网络应用程序,不如在 QtWebkit GUI 上运行并打开它。

我写了下面的代码,但是好像不对。当 Flask 开始运行时,GUI 将被挂起。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
from flask import Flask


app = Flask(__name__)

@app.route("/")
def hello():
return "<a href='http://127.0.0.1:5000/test'>AA</a><br />Hello World!"

@app.route('/test')
def test():
return 'test'

pyqt = QApplication(sys.argv)

web = QWebView()


if __name__ == "__main__":

web.load(QUrl("http://127.0.0.1:5000/"))
web.show()
app.run()
sys.exit(pyqt.exec_())

最佳答案

要使 GUI 处于事件状态并做出响应,必须运行其主循环。主循环通过 exec_() 调用执行。在您的示例中,控制流永远不会到达此调用,因为 app.run() 运行 Flask 服务器并且不会返回。

GUI 通常需要在主线程中运行,因此您最好在自己的线程中启动 Web 应用程序服务器:

from threading import Thread

# ...

app_thread = Thread(target=app.run)
app_thread.daemon = True
app_thread.start()

# ...

start() 方法启动一个异步运行服务器并返回给调用者的新线程。

关于python - QtWebkit 和 Flask 制作原生桌面应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34311511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com