关于 pyqt的可视化问题,小白一个,求大神指教

先贴上代码:

import sys
from PyQt5 import QtWidgets, QtGui
import numpy as np
import os
import time


# 定义窗口函数window
app = QtWidgets.QApplication(sys.argv)
# 新建一个窗口,名字叫做w

# 图片和文件,各打开一个
Png1 = QtGui.QPixmap('D:/pycharm/project/1.png')
Png2 = QtGui.QPixmap('D:/pycharm/project/2.png')
Png3 = QtGui.QPixmap('D:/pycharm/project/3.png')
Png4 = QtGui.QPixmap('D:/pycharm/project/4.png')

w = QtWidgets.QWidget()
# 定义w的大小
w.setGeometry(0, 0, 500, 500)
# 给w一个Title
w.setWindowTitle('rader_person')

q = 0

path = "D:/pycharm/project/npy_data" #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
for file in files: #遍历文件夹
    print(file)

    loadData = np.load('D:/pycharm/project/npy_data/'+file)
    print(loadData.shape)

    for i in loadData:
        x = i[1][0]
        y = i[1][2]
        print("\n")

        if (q == 0):

            l1 = QtWidgets.QLabel(w)
            l1.setPixmap(Png1)
            l1.setGeometry(0, 500, 30, 30)
            l1.setScaledContents(True)
            l1.move(int((i[1][0])/50)+100, int((i[1][2])/50)+100)

        if (q == 1):
            l1 = QtWidgets.QLabel(w)
            l1.setPixmap(Png2)
            l1.setGeometry(0, 500, 30, 30)
            l1.setScaledContents(True)
            l1.move(int((i[1][0])/50)+100, int((i[1][2])/50)+100)

        if (q == 2):
            l1 = QtWidgets.QLabel(w)
            l1.setPixmap(Png3)
            l1.setGeometry(0, 500, 30, 30)
            l1.setScaledContents(True)
            l1.move(int((i[1][0])/50)+100, int((i[1][2])/50)+100)

        if (q == 3):
            l1 = QtWidgets.QLabel(w)
            l1.setPixmap(Png4)
            l1.setGeometry(0, 500, 30, 30)
            l1.setScaledContents(True)
            l1.move(int((i[1][0])/50)+100, int((i[1][2])/50)+100)

        q = q + 1
        # w.removeEventFilter(l1)
    w.show()

    time.sleep(0.000001)

sys.exit(app.exec_())

主要功能是按照读取npy文件中的标签显示坐立卧行,读取单个文件显示没有问题,但是在轮流读取文件夹中的npy文件并显示时就出现了如下图的问题:

在读取所有文件之前啥都不显示,读取完所有文件之后,才会正常显示最后读取的一个npy文件并显示坐立卧行图片:

将w.show放到最外面的for循环效果同上,放到循环外面就显示一个npy文件的效果图

 

想请教万能的大神们该怎么修改才能做到实时显示而不是只显示最后一个读取文件的画面。

 

你要显示的时候,把文件列表取出到list 里面,显示完成后再按时间间隔逐步显示

我也碰到了这个问题

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y