從我的理解,這是開發人員的工作,創建並打開新的標籤爲URL點擊。您需要爲QWebView::linkClicked信號定義一個自定義插槽。只要用戶點擊一個鏈接並且該頁面的linkDelegationPolicy屬性設置爲委派指定url的鏈接處理,就會發出此信號。在那裏你可以創建一個新的QWebView實例添加一個選項卡並在那裏打開新的URL。下面是一個例子:
import sys
from PyQt4 import QtGui, QtCore, QtWebKit
class MainForm(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainForm, self).__init__(parent)
self.tabWidget = QtGui.QTabWidget(self)
self.setCentralWidget(self.tabWidget)
self.loadUrl(QtCore.QUrl('http://qt.nokia.com/'))
def loadUrl(self, url):
view = QtWebKit.QWebView()
view.connect(view, QtCore.SIGNAL('loadFinished(bool)'), self.loadFinished)
view.connect(view, QtCore.SIGNAL('linkClicked(const QUrl&)'), self.linkClicked)
view.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks)
self.tabWidget.setCurrentIndex(self.tabWidget.addTab(view, 'loading...'))
view.load(url)
def loadFinished(self, ok):
index = self.tabWidget.indexOf(self.sender())
self.tabWidget.setTabText(index, self.sender().url().host())
def linkClicked(self, url):
self.loadUrl(url)
def main():
app = QtGui.QApplication(sys.argv)
form = MainForm()
form.show()
app.exec_()
if __name__ == '__main__':
main()
希望這會有所幫助,至於
謝謝!這是解決這個問題的開始。 – Coldmera 2011-01-24 12:57:58