Python PyQt QWebView 在点击的选项卡中加载站点

Python PyQt QWebView load site in clicked tab

我需要你的帮助!

情况:我有不同的选项卡,在一个选项卡中 ["Support"-Tab] 我想使用 QWebView 小部件。 但是当我点击这个选项卡时,网站应该首先加载:

main.py

import sys
from PyQt4 import QtCore, QtGui, QtWebKit
from tab-file import Support

class Widget(QtGui.QWidget):

    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)

        self.createTabs()

        widgetLayout = QtGui.QVBoxLayout()
        widgetLayout.addWidget(self.tabs)
        self.setLayout(widgetLayout)

        self.setWindowTitle("Tabs")
        self.resize(400,400)


    def createTabs(self):
        self.tabs = QtGui.QTabWidget()

        support = Support()

        tab1 = QtGui.QWidget()
        tab2 = support

        self.tabs.addTab(tab1,"tab1")
        self.tabs.addTab(tab2,"SUPPORT")

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

我从这个文件加载 "Support"-Tab

tab-file.py

import sys
from PyQt4 import QtGui, QtCore, QtWebKit


class Support(QtGui.QWidget):

    def __init__(self, parent=None):
        super(Support, self).__init__(parent)

        self.supportTab()


    def supportTab(self):

        view = QtWebKit.QWebView()

        url = "http://www.google.com"
        view.load(QtCore.QUrl(url))

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(view)

        self.setLayout(vbox)

你能告诉我如何解决这个问题吗?

提前致谢。

main.py中:

使 tab2 可寻址,并添加代码以侦听选项卡更改事件:

    #...
    self.tab2 = support

    self.tabs.addTab(tab1,"tab1")
    self.tabs.addTab(self.tab2,"SUPPORT")
    #
    self.tabs.currentChanged.connect(self.load_on_show)

然后添加动作

def load_on_show(self):
    idx = self.tabs.currentIndex()
    if idx == 1:
        url = "http://www.google.com"
        print url
        self.tab2.load_url(url)

最后,在 tab_file.py [我不能使用破折号,必须使用下划线!]:

再次使 view 可寻址 (self.view) 并添加代码

def load_url(self, url):
    self.view. load(QtCore.QUrl(url))

这有帮助吗?