제 생각에 클릭 한 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