2015-04-15 2 views
1

Мне нужна ваша помощь!Python PyQt Сайт загрузки QWebView на вкладке с щелчком

Ситуация: у меня разные вкладки и на одной вкладке ["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 из этого файла:

закладки файл. 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) 

Не могли бы вы рассказать мне, как я могу это решить?

Заранее спасибо.

ответ

2

в 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)) 

Поможет ли это?

+0

спасибо! он работает очень хорошо – Timo

Смежные вопросы