在另一个线程中加载带有QML进度的图像

2024-10-05 11:53:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用QML和PyQt。我使用Python中的一个模型,并用一个委托在QML中查看它的数据。在

import QtQuick 1.0

Rectangle {
    id: container

    ListView {
        id: tweetListView
        anchors.fill: parent;
        clip: true
        model: mymodel
        delegate: TweetDelegate {
        //...
        }
}

我需要在QML中打开图像,所以我使用

^{pr2}$

但是当fetch_and_open()运行时,UI将冻结,因此我们永远不会是忙碌的图标。我需要打开busy图标,在另一个线程中获取图像,并向代理发送一个信号LoadFinished以关闭忙碌图标。在

但我如何与代表之外的代表沟通?在


Tags: 数据模型图像importidcontainer代表qml
1条回答
网友
1楼 · 发布于 2024-10-05 11:53:12

不幸的是,您的代码需要变得更加复杂。QML在单个线程中运行,对python的任何调用都是同步的和阻塞的。答案是让python代码首先创建一个新线程。然后在新线程中执行fetch和open操作。棘手的是,现在你需要一种方法来告诉你的忙碌的廑图标什么时候结束。这是通过在主窗口对象中创建一个可以在加载完成时触发的信号来完成的。从那里连接一个信号处理程序来告诉繁忙的图标停止是很简单的。在

相关问题 更多 >

    热门问题