其他分享
首页 > 其他分享> > 如何使用QWebView和PySide双重缓冲WebKit页面?

如何使用QWebView和PySide双重缓冲WebKit页面?

作者:互联网

我正在使用PySide和QWebView在Windows上提供Web应用程序的WebKit版本.

在只有Internet Explorer的复杂工作Windows环境中安装简便.

除了使用QWebKit之外,它非常简单:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

#       hellowebkit.py


#       Copyright 2009 Piotr Maliński, riklaunim@gmail.com
#       
#       <Under GPL licence>

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *

app = QApplication(sys.argv)

web = QWebView()
web.load(QUrl("http://myapp.example.com"))
web.show()

sys.exit(app.exec_())

我想启用双重缓冲,以便在下一页完全加载之前没有图形.

你知道我该怎么做吗?
我想也许使用web.loadFinished()信号?

干杯,

纳蒂姆

解决方法:

您可以使用QStackedWidget和QSignalMapper来做到这一点:

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *

app = QApplication(sys.argv)

# Create a stack with 2 webviews
stack = QStackedWidget()
mapper = QSignalMapper(stack)
mapper.mapped[int].connect(stack.setCurrentIndex)
for i in range(2):
    web = QWebView(stack)
    stack.addWidget(web)
    # When a webview finishes loading, switch to it
    web.loadFinished[bool].connect(mapper.map)
    mapper.setMapping(web, i)

# load the page in the non visible webview
stack.widget(1).load(QUrl("http://myapp.example.com"))
stack.show()

sys.exit(app.exec_())

标签:webkit,pyside,pyqt,qt4,python
来源: https://codeday.me/bug/20191208/2087996.html