2017-12-23 2 views
0

필자는 pyqt5 코드를 사용하여 탭 브라우저를 만들려고합니다. 대상 _blank 링크를 클릭하면 링크가있는 새 탭에서 열립니다. 또한 PyQt5에 익숙하지 않고이 프로젝트를 연습하고 있으므로 도움이 필요합니다. 코드에는 3 개의 클래스가 있는데 하나는 주 윈도우를, 다른 하나는 웹 뷰를 보유하고 있고 하나는 웹 페이지를 보유하고 있습니다. 여기에 코드입니다 :qwebengine을 사용하여 탭 브라우저를 만드는 방법

클래스는 추상적이다
class Ui_MainWindow(QMainWindow): 

    def __init__(self): 
     super(Ui_MainWindow, self).__init__() 
     self.setupUi(self) 

    def setupUi(self, MainWindow): 
     self.centralwidget = QtWidgets.QWidget(MainWindow) 
     self.centralwidget.setObjectName("centralwidget") 
     self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) 
     self.tabWidget.setGeometry(QtCore.QRect(0, 75, width, height)) 
     self.tabWidget.setObjectName("tabWidget") 
     self.loadUrl("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_a_target") 
    def loadUrl(self, url): 
     self.b = HtmlView() 
     self.tabWidget.setCurrentIndex(self.tabWidget.addTab(self.b, 'loading...')) 
     self.b.load(QUrl(url)) 
class WebEnginePage(QWebEnginePage): 
    def __init__(self, parent=None): 
     super(WebEnginePage, self).__init__(parent) 
    def acceptNavigationRequest(self, url, _type, isMainFrame): 
     if (_type == QWebEnginePage.NavigationTypeLinkClicked): 
      Ui_MainWindow.loadUrl(Ui_MainWindow, url) 
      return True 
     return QWebEnginePage.acceptNavigationRequest(self, url, _type, isMainFrame) 
class HtmlView(QWebEngineView): 
    def __init__(self, parent=None): 
     super(HtmlView, self).__init__() 
     self.setPage(WebEnginePage(self)) 
+1

이 게시물에서는 질문이 만들어 지므로 만들기 버튼에 다음과 같은 메시지가 표시됩니다. Ask * questions *는 말하지 않습니다. – eyllanesc

+0

사실, 죄송합니다. 추가 질문을 삭제했습니다. – Maxwe11

답변

0

, 즉 그들이 쓸모하지만 Ui_MainWindow.loadUrl(Ui_MainWindow, url) 객체를 생성하지 않고 클래스를 사용하는 명령에 클래스의 객체와 당신을 만들 수있다, 당신은 무엇을해야 같은 개체를 사용하고 있습니다. 아래에 표시된 인스턴스를 통해 :

+0

감사합니다. appreicate ur time :) – Maxwe11

관련 문제