python - 如何为我的 PyQt5 浏览器制作加载器
问题描述
我正在使用 PyQt5 和 Python 制作一个简单的浏览器。我需要使用开始加载 gif
self.movie.start()
self.movie.stop()
但我需要self.movie.stop()
在网页完全加载后调用。
解决方案
您必须使用 loadStarted 和 loadFinished 信号来启动和停止动画:
from PyQt5 import QtCore, QtGui, QtWidgets, QtWebEngineWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.view = QtWebEngineWidgets.QWebEngineView()
self.label = QtWidgets.QLabel(alignment=QtCore.Qt.AlignCenter)
self.movie = QtGui.QMovie("loading.gif")
self.label.setMovie(self.movie)
lay = QtWidgets.QVBoxLayout(self)
lay.addWidget(self.view, stretch=1)
lay.addWidget(self.label, stretch=0)
self.view.loadStarted.connect(self.movie.start)
self.view.loadFinished.connect(self.movie.stop)
self.view.load(QtCore.QUrl("https://www.qt.io"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
推荐阅读
- java - 通过休息模板交换解析响应
- .htaccess - 通过 htaccess 中的浏览器语言重定向,但只能从外部 url
- html - 动画 z-index
- objective-c - Xcode tvOS - 错误:您无权将文件“fileName.txt”保存在“Documents”文件夹中
- javascript - 根据数组的属性和组位对数组进行功能排序
- c# - WPF 中连接字符串的安全文本输入
- html - 角度占位符图像和文本
- python - 有没有比使用 python-docx 从大量非结构化 MS Word 文档中提取文本块更好的方法?
- postgresql - 如果 case-when-then-else 子句给出 ERROR: more than one row returned by a subquery used as an expression。在PostgreSQL中
- excel - 删除过滤的行