hola! 2021-04-13 17:37 采纳率: 0%
浏览 32

关于 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文件的效果图

 

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

 

  • 写回答

4条回答 默认 最新

  • 关注

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

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码