Как использовать многопроцессорную работу с PyQt5 и предотвратить открытие нескольких графических интерфейсов - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть следующий код, который прекрасно работает, когда я просто запускаю файл двойным щелчком мыши. Однако, когда я конвертирую его в исполняемый файл с помощью Pyinstaller, он открывает несколько GUI windows для каждого процесса при нажатии кнопки в GUI.

from PyQt5 import uic, QtWidgets
from CurrentChains import processchain
import os
import sys
import threading


def alltask():
    x = threading.Thread(target=processchain)
    x.start()

if __name__ == '__main__':

    y = os.getcwd()

    app=QtWidgets.QApplication(sys.argv)
    window = uic.loadUi(os.path.normpath(y)+ "\\" + "estate.ui")
    window.pushButton.clicked.connect(alltask)

    window.show()



sys.exit(app.exec_())

Функция processchain выглядит следующим образом :

def processchain():
    p=Pool(processes=15)
    data=p.map(fetchdata,range(1,1000))

Как я могу предотвратить отображение нескольких GUI с исполняемым файлом? Не уверен, что это проблема с pyinstaller или просто мой код. Я использую многопоточность, чтобы предотвратить зависание интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...