Вы не должны получать доступ к графическому интерфейсу из другого потока, а с помощью своего кода вы не можете этого сделать, потому что в функции поведенияCurling self ссылается на объект класса Worker, и, очевидно, Worker не имеет атрибута GUI. Решение состоит в том, чтобы передать в качестве аргумента текст при вызове функции поведенияCrolling, для этого вы можете использовать частичное и QTimer:
from functools import partial
# ...
def __init__(self, parent=None):
super(self.__class__, self).__init__(parent)
self.gui = QWidgetUI()
self.worker = Worker()
self.workerThread = QThread()
self.worker.moveToThread(self.workerThread)
self.workerThread.start()
self.connectSignal()
self.gui.show()
def connectSignal(self):
self.gui.searchBtn.clicked.connect(self.launchTask) # change connection
def launchTask(self):
wrapper = partial(self.worker.conductCrolling, self.gui.IDinput.text()) # add text
QTimer.singleShot(0, wrapper) # invoked conductCrolling function
class Worker(QObject):
@pyqtSlot(str) # <---- add str
def conductCrolling(self, text): # <--- add text
# use text
searchingHtml = urlopen('https://www.twitter.com/{}/media'.format(text))