一篇讓你大開眼界的Python教程:讓Web和GUI魚和熊掌兼得

本期教程給大家更新絕對讓你大喫一驚的效果—web嵌入GUI

隨着Web技術的蓬勃發展,以網頁形式在瀏覽器上顯示圖表已經逐漸成爲一種主流的形式。

網頁的實現是由HTML、CSS和Javascript三者相結合完成的,HTML負責網頁的結構,CSS渲染網頁元素的樣式,而Javascript給網頁增加了動態的行爲,總體來看,網頁版本的圖表在顯示效果上可以達到更加生動、炫酷的要求。

不過話說回來,對於本地的交互來說,GUI使用起來更爲便捷。那麼,能不能魚和熊掌兼得呢?本文來介紹下如何在Python的GUI工具中嵌入HTML頁面。

wxPython的wx.html和wx.html2模塊支持解析和顯示HTML文件內容。

html.HtmlWindow對象是一個通用的HTML瀏覽器,但不是一個全功能的瀏覽器,所以支持的功能有限。

比如使用SetPage()設置嵌入一副HTML頁面,如下所示:

import wx.html as html
class MyFrame(wx.Frame):
    def __init__(self,parent=None):
        super(MyFrame, self).__init__(parent, -1, "HTML文件", size=(450, 250))
        htmlwin = html.HtmlWindow(self)
        #htmlwin.LoadPage("http://www.baidu.com")
        htmlwin.SetPage("""
         <html>
            <body bgcolor="#fdd22f">
                <h1>這是標題</h1>
                <b style="color:blue">用Python量化交易</b>   
                <p> 通過 rbg 值設置背景顏色 </p>
                <br/>
                <p>
                這是第一個段落。
                </p>
                <i>這是斜體文本</i>
            </body>
         <html>
                    """)
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()

一篇讓你大開眼界的Python教程:讓Web和GUI魚和熊掌兼得

 

當然了,就像剛纔所說的,和真正的瀏覽器差距還是很大的,它只支持HTML標準的一個子集,不支持Javascript或者CSS。我們用LoadPage()加載百度主頁時會顯示成這個樣子,如下所示:

一篇讓你大開眼界的Python教程:讓Web和GUI魚和熊掌兼得

 

但是wx.html相對輕量級並且沒有平臺依賴性。我們換成了wx.html2,它支持全特性的HTML渲染組件,包括Javascript和CSS,另一方面也根據不同的平臺後端,會表現出不同的行爲。

我們使用wx.html2.WebView.New中的 LoadURL加載百度官網頁面,如下所示:

class MyBrowser(wx.Dialog):
    def __init__(self, *args, **kwds):
        wx.Dialog.__init__(self, *args, **kwds)
        sizer = wx.BoxSizer(wx.VERTICAL)
        self.browser = wx.html2.WebView.New(self)
        sizer.Add(self.browser, 1, wx.EXPAND, 10)
        self.SetSizer(sizer)
        self.SetSize((700, 700))

if __name__ == '__main__':
    app = wx.App()
    dialog = MyBrowser(None, -1)
    dialog.browser.LoadURL("http://www.baidu.com/?tn=62095104_10_oem_dg")  # 加載頁面
    dialog.Show()
    app.MainLoop()

一篇讓你大開眼界的Python教程:讓Web和GUI魚和熊掌兼得

 

這麼一來,之前我們顯示股票行情GUI是這樣子的,如下所示:

一篇讓你大開眼界的Python教程:讓Web和GUI魚和熊掌兼得

 

後來我們發現pyecharts的顯示效果更加炫酷啊,如下所示:

一篇讓你大開眼界的Python教程:讓Web和GUI魚和熊掌兼得

 

於是我們把pyecharts生成的HTML文件加載到wxPython中,變成這樣了,如下所示:

一篇讓你大開眼界的Python教程:讓Web和GUI魚和熊掌兼得

 

關於以上內容更多的探討,夥伴們可以評論區留言,Python系列詳細視頻教程也整理好了。需要的夥伴,回覆:Python教程,即可領取全套Python視頻教程!!

Python 900集全套視頻教程(全家桶)
https://pan.baidu.com/s/1cU5lDWq9gh0cQ7hCnXUiGA 提取碼: m

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章