gpt4 book ai didi

qt - QWebView 自动选项卡

转载 作者:行者123 更新时间:2023-12-01 03:11:24 26 4
gpt4 key购买 nike

我使用 QWebView.load(QUrl(myurl)) 打开一个网页,该网页获取一些输入并返回一个新的 php 生成的页面。

如果在 Firefox 中执行,浏览器会自动打开一个新选项卡/窗口来显示返回的页面。

如何告诉 QWebView 打开一个新的 QWebview 实例并加载返回的数据?

我正在查看 QwebView 文档:www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qwebview.html ...但没有喜悦。

此类页面的示例: http://www.iqfront.com/index.php?option=com_content&view=article&id=5&Itemid=4

感谢您的任何想法。

最佳答案

根据我的理解,这是开发人员的工作,为单击的网址创建和打开新选项卡。您需要为 QWebView::linkClicked 定义一个自定义插槽。信号。每当用户单击链接并且页面的 linkDelegationPolicy 属性设置为委托(delegate)指定 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()

希望这有帮助,问候

关于qt - QWebView 自动选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4766186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com