2017-06-15 46 views
0

我正在使用WxPython創建一個UI已經形成的應用程序。我正在使用帶有HTML窗口的面板。使用webview和WxPython提取和顯示信息

在這個顯示的HTML頁面中,我想提取信息,例如文本框的文本,選擇哪個單選按鈕,單擊按鈕等,並且同時顯示一些信息給用戶,就像一個進程已經完成,結果或類似的信息一樣。

我沒有找到一個好的方法來做這件事,只要我能理解,我需要使用Javascript或其他方式以某種方式與頁面進行交互。但是我找不到如何向頁面發送和接收信息,以及如果wx.html.HtmlWindow支持Javascript。

這樣做的最佳方式是什麼?

回答

0

您可以通過套接字進行通信。在python端創建一個本地套接字服務器,然後使用javascript連接到該套接字。網絡上有很多這樣的例子。見蟒蛇套接字服務器文檔:https://docs.python.org/2/library/socketserver.html

它看起來並不像wx.html module支持JavaScript或CSS:

此模塊包含一個通用的HTML渲染器widget類和支持類。它僅支持HTML標準的一個子集,並且不支持Javascript或CSS,但它相對輕量級,並且沒有平臺依賴性。它適用於顯示簡單的HTML文檔,例如應用程序的文檔或內置的幫助頁面。

它看起來像你可以處理EVT_HTML_LINK_CLICKED事件告訴當用戶點擊一個鏈接,但我不知道你會如何從HTML表單元素,比如文本框,單選按鈕等

輸入

您最好的辦法可能是使用像Flask這樣的微型框架創建一個網絡應用程序,並在本地提供應用程序。

+0

您好,非常感謝您的回覆。在這種情況下,我可以使用Chrome來渲染我的頁面,對吧?沒有必要使用來自Wx的WebView。 – user2977500

+0

@ user2977500這取決於你還需要你的應用程序做什麼。您是否將功能添加到現有的WxPython應用程序?如果您只是打算將WxPython應用程序用作顯示html頁面的容器,並且需要html表單元素的功能,那麼我會說使用像[Flask]這樣的微框架(http://flask.pocoo.org/) )可能是最簡單的選擇。它也顯示wx.html模塊不支持JavaScript或CSS。看到我更新的答案。 – LeopoldVonBuschLight