【发布时间】:2018-08-16 16:18:18
【问题描述】:
使用以下代码:
from PyQt5.QtWidgets import QDialog,QMessageBox
from PyQt5.uic import loadUi
class FileLoader(QDialog):
loadCompleteSig = pyqtSignal()
def __init__(self,*args):
super(FileLoader,self).__init__(*args)
loadUi("fileloader/fileloader.ui",self)
self.clientcode = ""
self.filename = ""
self.foldername = ""
self.filetype = ""
self.clearflag = True
self.thread = None
@pyqtSlot()
def showEvent(self, e):
QTimer.singleShot(20,self.load_file)
def show_load_errors(self,msg):
message = QMessageBox()
message.setIcon(QMessageBox.Critical)
message.setWindowTitle("File Loader Error")
message.setText("The File Loader Has Encountered An Error:")
message.setInformativeText(msg)
message.exec_()
self.close()
def set_folder_name(self,foldername):
self.foldername = foldername + '/' if foldername[-1:] != "/" else foldername
def set_file_type(self,filetype):
self.filetype = filetype.upper()
def set_client_code(self,clientcode):
self.clientcode = clientcode.upper()
def set_clear_flag(self,clearflag):
self.clearflag = clearflag
def load_file(self):
if not isdir(self.foldername):
self.show_load_errors('The Selected Folder {0} Cannot Be Found!'.format(self.foldername))
if self.filetype == "":
self.show_load_errors('The File Load Type Must Be Set!')
我希望在 show_load_errors() 方法中的 self.close() 之后不再执行任何代码。在load_file() 方法中,我检查了两个条件。如果self.show_load_errors() 被第一个条件调用,那么我需要关闭对话框而不进一步执行。相反,代码会在对话框关闭之前检查下一个条件。
所以基本上,如果我在对话框上调用self.close(),我需要在不进一步执行任何代码的情况下关闭对话框。希望这是有道理的。谢谢!
【问题讨论】:
标签: python-3.x pyqt5