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

发布于 2024-12-02 19:49:11 字数 818 浏览 0 评论 0原文

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

在仅存在 Internet Explorer 的复杂工作 Windows 环境中简单且易于安装。

更重要的是使用 QWebKit 它非常简单:

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

#       hellowebkit.py


#       Copyright 2009 Piotr Maliński, [email protected]
#       
#       <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() 信号?

干杯,

纳蒂姆

I am playing with PySide and QWebView to provide a WebKit version of a webapp on Windows.

Simple and easy to install in a complex working Windows environment where only Internet Explorer exists.

More over using QWebKit it is quite simple :

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

#       hellowebkit.py


#       Copyright 2009 Piotr Maliński, [email protected]
#       
#       <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_())

I would like to enable double buffering so that there is no drawing until the next page is fully loaded.

Do you know how I should do that?
I guess maybe using web.loadFinished() signal?

Cheers,

Natim

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瞎闹 2024-12-09 19:49:11

您可以使用 QStackedWidgetQSignalMapper 来执行此操作:

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_())

You can use a QStackedWidget and a QSignalMapper to do that:

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_())
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文