我目前正在开发一个应用程序,需要呈现数学表达式(从latex中)并需要具有某种本地GUI(即使只是使用gtk,然后在webkit中呈现html)。
我进行了一些研究,并决定使用webkit加载网页,并使用像MathJax这样的JavaScript库来呈现数学公式是一种简单的方法。我选择以这种方式处理的其他原因是:我有相当多的Python Web应用程序开发经验(虽然是一段时间以前),缺乏本地GUI的经验以及它提供的可移植性。
对于Web应用程序框架,我选择使用flask,因为我最熟悉它。
问题是这个应用程序需要拥有自己的本地GUI,最好通过gtk(即使只是在webkit中呈现html),并且最好不要附加到某个套接字上的http服务器。
所以我的问题是,除了运行flask的服务器之外,是否有任何方法可以做到这一点?
我进行了一些研究,并决定使用webkit加载网页,并使用像MathJax这样的JavaScript库来呈现数学公式是一种简单的方法。我选择以这种方式处理的其他原因是:我有相当多的Python Web应用程序开发经验(虽然是一段时间以前),缺乏本地GUI的经验以及它提供的可移植性。
对于Web应用程序框架,我选择使用flask,因为我最熟悉它。
问题是这个应用程序需要拥有自己的本地GUI,最好通过gtk(即使只是在webkit中呈现html),并且最好不要附加到某个套接字上的http服务器。
所以我的问题是,除了运行flask的服务器之外,是否有任何方法可以做到这一点?
import gtk
import webkit
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "<h1>Hello World!</h1>"
if __name__ == '__main__':
window = gtk.Window()
webview = webkit.WebView()
webview.load_string(
app.load_from_uri('/'),
"text/html",
"utf-8",
'/'
)
window.add(webview)
window.show_all()
app.load_from_uri('/')
仅作为示例用于加载Flask应用程序的给定URI的网页的方式。但是,由于这只是一个示例,那么在实际代码中如何执行app.load_from_uri('/')
呢?
另外,是否有任何方法可以覆盖用户单击链接时的操作,使其执行以下操作:
def link_clicked(uri):
webview.load_string(
app.load_from_uri(uri),
"text/html",
"utf-8",
uri
)
非常感谢您的帮助!