您可以使用 wxWidgets WebView 组件(通过 wxPython)在 Python GUI 应用程序中嵌入 Internet Explorer 窗口。不像例如Qt 包含跨所有平台的标准化浏览器组件,wxWidgets 默认使用宿主平台上的本机浏览器。您还可以通过手动设置后端来强制使用 IE(忽略用户的默认浏览器)。
在文档中它显示WEBVIEW_BACKEND_IE,但实际值可通过wx.html2.WebViewBackendIE 获得。以下是一个完整的工作示例,改编自here:
import wx
import wx.html2
class MyBrowser(wx.Frame):
def __init__(self, *args, **kwds):
wx.Frame.__init__(self, *args, **kwds)
sizer = wx.BoxSizer(wx.VERTICAL)
self.browser = wx.html2.WebView.New(self, backend=wx.html2.WebViewBackendIE)
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("https://www.google.com")
dialog.Show()
app.MainLoop()
当然,这仅适用于 Windows。有关 wxWidgets 中 WebView 的更多信息,请参阅documentation。
如果您已经在应用程序中使用 (Py)Qt,Qt 还支持使用 QAxWidget 类在窗口中嵌入 ActiveX 对象。 Qt documentation 中有一个 Web 浏览器示例。下面是一个最小的PyQt4 example:
browser = QAxContainer.QAxWidget()
browser.setControl("<ActiveX ID>") # e.g. "{8856F961-340A-11D0-A96B-00C04FD705A2}"
browser.dynamicCall('Navigate(const QString&)', QtCore.QString("google.com"))