想用pyqt5弄一个显示图片的程序,可窗口显示过后程序还是在运行,没有退出
(是不是多线程的问题,导致有些线程没结束
import sys
from PyQt5.QtWidgets import *
from PyQt5 import QtCore
from PyQt5.QtGui import QPixmap,QIcon
from time import sleep
from threading import Thread
from configparser import ConfigParser
a = ConfigParser()
a.read("config.cfg")
dx = a.getint("d","dx")
dy = a.getint("d","dx")
class Window(QWidget):
def __init__(self,p):
super().__init__()
self.initUI()
thread = Thread(target=self.showpic,args=[p])
thread.setDaemon(True)
thread.start()
print(1111)
def initUI(self):
self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.SubWindow|QtCore.Qt.WindowStaysOnTopHint)
self.setAutoFillBackground(False)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
self.repaint()
self.setGeometry(dx,dy,3840,2160)
self.lab = QLabel()
vbox = QVBoxLayout()
vbox.addWidget(self.lab)
self.setLayout(vbox)
self.show()
print(1919)
def showpic(self,p):
for i in p:
self.lab.setPixmap(QPixmap(i[0]))
sleep(i[1])
self.close()
sys.exit()
print(114514)
def show(pic):
app = QApplication(sys.argv)
ex = Window(pic)
print(8)
app.exec_()
print(9)
show([["./pic/show/1.png",0.25],["./pic/show/2.png",0.25],["./pic/show/3.png",0.25],["./pic/show/4.png",0.25]])