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

关于 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条回答 默认 最新

  • software7503

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

    点赞 评论
  • cpongo1
    cpongo1 2021-04-13 17:58

    我也碰到了这个问题

    点赞 评论
  • QA_Assistant
    有问必答小助手 2021-04-13 19:02

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

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

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

    点赞 评论
  • QA_Assistant
    有问必答小助手 2021-04-15 15:24

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

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

    点赞 评论

相关推荐