|
本帖最后由 学到老 于 2020-2-26 09:36 编辑
不能return this。
需要return new 出来的刚才子例化的QWebEngineView对象。
这是python实现的代码,可参考:
class View(QWebEngineView):
def __init__(self,parent = None):
super().__init__(parent)
self.load(QUrl("这个链接居然不让发"))
self.setWindowTitle("New Page")
self.show()
# 简单重载了下createWindow函数,实现鼠标点击链接在新窗口打开
def createWindow(self,type):
self.newView = View()
self.newView.resize(900,600)
return self.newView
更多参考在知乎搜索“PyQt5图形界面编程”也可参考Qt自带的游览器示例
补充:链接不在新窗口中打开的思路
函数:QWebEnginePage * QWebEngineView::page() const
信号:void QWebEnginePage::linkHovered(const QString & url)
利用信号槽在QWebEngineView子类中保存一个成员变量记录鼠标悬浮位置的url,在重载的createWindow函数中load(url),再返回一个空值。
|
|