Я написал приложение с Pyside (QtPy). Приложение позволяет пользователю: 1. Сканировать путь. Приложение сканирует путь по умолчанию и отображает существующие папки в этом пути в виде списка флажков. 2. Пользователь может выбрать несколько папок и выполнить процесс (кнопку) во всех этих папках.Как отправить список из основного интерфейса в Qthread в Pyside, QtPy python?
В фоновом режиме: Когда пользователь нажимает «процесс», я просматриваю список флажков и создаю новый список только для выбранной папки (флажки «checked» или «выбранные пользователем папки»).
Фактический процесс для этих папок будет выполняться в цикле в классе QThread.
Задача - Как мой QThread может использовать «список выбранных папок» из основного метода пользовательского интерфейса? На этом этапе единственный способ, которым я смог заставить его работать, - сделать этот список глобальным параметром. Основной метод пользовательского интерфейса задает значения глобальному списку, QThread может читать этот глобальный список.
Я прочитал всю возможную документацию по сигналам и слотам, и у меня нет проблем с отправкой чего-либо, что я хочу от Qthread, к основному пользовательскому интерфейсу, но я не смог найти достойного объяснения для отправки данных в поток.
спасибо.
Вы должны быть ль продлить [это] (http://stackoverflow.com/a/ 35534047/1994235) ответьте так, чтобы данные были включены в сигнал от основного потока к qthread (он работает точно так же, как и в обратном направлении, о котором вы сказали, что знаете, как это сделать) –
Привет, спасибо за ваш ответ, поэтому просто чтобы убедиться, что я понимаю, на основе этого: «... поместите свой код в подкласс QObject и переместите этот объект в стандартный экземпляр QThread ...» Мне нужно изменить текущий код, который использует «run», метод к QObject, который позже я буду перемещать ToThread. –
Хорошо. Я переместил весь свой метод QThread «Запуск» на новый метод запуска в myWorker и связал его с сигналом «начального» потока, и он работает как шарм. Но я заметил, что могу выполнить тот же список, что и моя текущая реализация. Довольно смущающе, насколько это просто ... Я мог бы просто сделать что-то вроде: self.myQThread.list = self.myUIlist и теперь мой метод run в потоке видит этот список. –