У меня есть многопоточное приложение, написанное на Python, в котором один поток «заботится» о графическом интерфейсе, а другой - рабочий поток.Тем не менее, рабочий поток имеет две основные функции (или, так сказать, две основные задачи), и мне нужно сообщить функции запуска, какое именно задание нужно выполнить.
Итак, я хотел создать циклФункция в рабочем потоке, которая будет принимать один параметр (за исключением «self». Параметр будет «создавать» или загружать. Без дальнейших церемоний, вот несколько кодов, которые у меня есть:
GUI.py
class GUI(QMainWindow):
def __init__(self, parent=None):
super, etc
self.worker = worker.Worker()
def create(self):
self.worker.start()
def upload(self):
self.worker.start()
Worker.py
class Worker(QThread):
def __init__(self, parent=None):
super, etc
def run(self):
self.create_data() # OR self.upload_data(), depends
Итак, вопрос в том, как я могу сказать worker.start (), какую функцию я хочу выполнить? Я понимаю, что можно напрямуюиспользуйте метод worker.run (), но мне сказали "Rapid GUI development с PyQT" никогда , чтобы напрямую вызывать worker.run (), и всегда использовать worker.start ().