Stonelee's Blog

如无必要,勿增实体

基于wxwebkit实现简单的浏览器

分享到: 更多

如何在python应用程序中嵌入浏览器?google半天之后发现 wxWebKit 是一个相对给力的webkit封装,虽然也有相当多的不足之处,但是对于简单的html渲染是没用问题的,直接给出代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python
# -*- coding: utf-8 -*-

__revision__ = '0.1'
__author__ = 'lxd'

import wx
import wx.webview

class MainFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'name', size=(800, 600))
        self.url = wx.TextCtrl(self, -1)
        self.html = wx.webview.WebView(self, -1)
        self.btnLoad = wx.Button(self, -1, u'进入')
        self.Bind(wx.EVT_BUTTON, self.OnLoadClick, self.btnLoad)
        self.layout()

    def layout(self):
        self.Center()

        setupBox = wx.StaticBox(self, -1, u'基本设置')
        setupSizer = wx.StaticBoxSizer(setupBox, wx.VERTICAL)
        setupSizer.Add(self.url, 0, wx.EXPAND|wx.ALL, 5)
        setupSizer.Add(self.btnLoad, 0, wx.ALL, 5)

        mainSizer = wx.BoxSizer(wx.VERTICAL)
        mainSizer.Add(setupSizer, 0, wx.EXPAND|wx.ALL, 5)
        mainSizer.Add(self.html, 1, wx.EXPAND|wx.ALL, 5)

        self.SetSizer(mainSizer)

    def OnLoadClick(self, evt):
        self.html.LoadURL(self.url.GetValue())

if __name__ == '__main__':
    app = wx.PySimpleApp()
    main = MainFrame()
    main.Show()
    app.MainLoop()

输入www.baidu.com没有问题,如果登录的话就杯具了…还有很多工作要做…貌似没有flash,没有cookie…希望有人能在这个基础上继续完善。

Comments