PyQt5 程序无法结束

想用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]])

你这个程序写的,怎么说呢,有些 非主流。

其中关于多线程肯定是有问题的,但可能还不仅是多线程的问题。

你可以先把涉及多线程的这几句注释掉,看看其它部分能否正常运行——我估计也有问题。