需求:
1.在GUI窗体上选择文件,
2.点击取消按钮或点击GUI窗体顶部的X,GUI窗口关闭,退出整个程序
3.点击确定按钮,GUI窗口关闭,后台继续解析选择的文件等一系列操作
目前问题:
点击确定后,GUI窗体没有立即关闭,而是等后面所有脚本执行完才关闭的窗口,请问大家谁知道这是怎么回事,帮忙指点下。
GUI:
import sys
import time
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets
from functools import partial
def data_analysis_mock(file):
print(f"GUI窗口关闭了,我在命令行执行数据分析:{file}。。。。。。")
time.sleep(8)
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.resize(500,500)
self.setWindowTitle('测试')
#显示文件路径LineEdit
self.filepathlabel1 = QtWidgets.QLineEdit(self)
self.filepathlabel1.resize(300, 30)
self.filepathlabel1.setReadOnly(True)
self.filepathlabel1.move(60, 60)
"""选择按钮"""
selectfileBtn1 = QtWidgets.QPushButton(self)
selectfileBtn1.setText("选择文件")
selectfileBtn1.resize(120, 30)
selectfileBtn1.move(370,60 )
selectfileBtn1.clicked.connect(partial(self.file,self.filepathlabel1))
"""取消按钮"""
cancelBtn = QtWidgets.QPushButton(self)
cancelBtn.setText("取消")
cancelBtn.resize(100, 50)
cancelBtn.move(60, 200)
cancelBtn.clicked.connect(self.click_cancle)
"""确认按钮"""
confirmBtn = QtWidgets.QPushButton(self)
confirmBtn.setText("确认")
confirmBtn.resize(100, 50)
confirmBtn.move(200, 200)
confirmBtn.clicked.connect(self.click_confirmBtn)
#浏览文件dialog
def file(self,pathlabel):
filename = QFileDialog.getOpenFileNames(self, '选择test_result文件', "/", "XML Files(*.xml)")
if len(filename[0])>0:
pathlabel.setText(filename[0][0])
def click_cancle(self):
app = QApplication.instance()
print("您选择了退出程序")
# 退出应用程序
app.quit()
#点击确认按钮的槽函数
def click_confirmBtn(self):
app = QApplication.instance()
# 退出应用程序
app.quit()
print("退出GUI,继续执行数据分析脚本。。。。")
data_analysis_mock(self.filepathlabel1.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())