필자는 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))
이 게시물에서는 질문이 만들어 지므로 만들기 버튼에 다음과 같은 메시지가 표시됩니다. Ask * questions *는 말하지 않습니다. – eyllanesc
사실, 죄송합니다. 추가 질문을 삭제했습니다. – Maxwe11