我试图在我创建的GUI中实现线程。基本上,我在GUI中有一个按钮,当按下该按钮时,将启动另一个程序的自动化。现在我有一个单独线程启动自动化功能的按钮。但是,我找不到一种方法来中止在自动化函数中间的线程。如果我关闭正在被自动化的程序,自动化函数仍然在一个活动线程的后台运行,并且我不能重新启动另一个新线程的自动化函数。我尝试过将.quit()和.exit()方法映射到主GUI中的一个按钮,但没有成功。有人有什么意见吗?在
这是我的线程类:
class WorkingThread(QtCore.QThread):
def __init__(self, selector):
QtCore.QThread.__init__(self)
self.selector = selector # Selects function to run
def __del__(self):
self.wait()
def run(self):
if self.selector == 1:
asa.mkdirsda(hdg_da_path, da_batch_folder, da_batch_subfolders)
elif self.selector == 2:
asa.mvlims(needs_gs_lims_file, subfolder_autoscore, lims_samplesheet)
elif self.selector == 3: # Automation function giving me trouble
asa.gsprocess(subfolder_genomestudio, da_batch_name, lims_samplesheet_file)
elif self.selector == 4:
asa.mvfinalreport(subfolder_genomestudio, finalreport_file, subfolder_autoscore)
elif self.selector == 5:
asa.pipelineas(userid, userpass, da_batch_name, raw_data_path)
elif self.selector == 6:
asa.batchactv()
return
这就是我如何调用一个新线程:
^{pr2}$这就是我试图映射到主GUI按钮以结束线程的内容:
def endWorkingThread(self):
self.thread_gs.quit()
目前没有回答
相关问题 更多 >
编程相关推荐