Запуск потоков из цикла (QThread)
Есть класс Thread_Worker (QThread), в котором происходит основная логика. В функции run() цикл.
class Thread_Worker(QThread):
def __init__(self, captcha_key, acc_data, rowPosition, ua, comment_kolvo, comment_kd, kd_potok):
super().__init__()
print('Thread ID: ' + str(QtCore.QThread.currentThreadId()))
self.signals = WorkerSignals()
self.captcha_key = captcha_key
self.acc_data = acc_data
self.rowPosition = rowPosition
self.ua = ua
self.comment_kolvo = comment_kolvo
self.comment_kd = comment_kd
self.kd_potok = kd_potok
self.run()
def text_randomization(self):
###
# получение owner_id группы
def get_owner_id(self, bruh):
###
# получение post_id поста
def get_post_id(self, bruh):
###
def run(self):
### цикл
Из основного класса запускаю такой цикл:
for i in range(len(accs)):
with open('ua.txt') as uaa:
u = uaa.readlines()
gua = str(u[:i + 1][0])
ua = str(u[:i + 1][0]).split('\n')[0]
with open('ua.txt', 'w') as g_f:
for o in u:
if o == gua:
continue
else:
g_f.writelines(o)
login = accs[i].split('\n')[0].split(':')[0]
print(login)
rowPosition = self.ui.tableWidget.rowCount()
print(rowPosition)
self.ui.tableWidget.insertRow(rowPosition)
self.ui.tableWidget.setItem(rowPosition, 0, QTableWidgetItem(login))
self.ui.tableWidget.setItem(rowPosition, 1, QTableWidgetItem('В ожидании'))
self.ui.tableWidget.setItem(rowPosition, 2, QTableWidgetItem('0'))
Thread_Worker(acc_data=accs[i], captcha_key=captcha_k, comment_kd=cooldown, comment_kolvo=comments_count, kd_potok=rotacia_kd, rowPosition=rowPosition, ua=ua).start()
В итоге потоки не запускаются одновременно, а поочередно, после завершения предыдущего потока. Собственно вопрос, как можно сделать так, чтобы потоки запускались одновременно? Я новичок в PyQt и в ООП в целом, буду рад любым советам.
Источник: Stack Overflow на русском