So guys, I had to change to approach, I read that using Qt I can't do multiple inheritance. So my Outpost class can't be like 'Outpost(QObject, QThred)'. I had to change the code a bit:
from PySide.QtCore import QObject, QThread, Signal import requests import bs4 class Worker(QThread): def __init__(self, url, *args, **kwargs): super().__init__(*args, **kwargs) self.trades = None self.posts = None self.url = url self.start() def run(self): soup = bs4.BeautifulSoup(requests.get(self.url).text) self.trades = soup.select('div.stat_box div.value')[0].get_text().replace(',', '') self.posts = soup.select('div.stat_box div.value')[1].get_text() return self class Outpost(QObject): received = Signal() def __init__(self, id64, *args, **kwargs): super().__init__(*args, **kwargs) worker = Worker('http://www.myurl.com/' + id64) self.received.emit(worker) So, what I see people doing is creating a 'Worker' class for thread related stuff and another separate class for the main stuff. So, let's see the problems: Traceback (most recent call last): File "D:/.../main.py", line 44, in output_slot outpost = Outpost('12345') File "D:\...\outpost.py", line 27, in __init__ self.received.emit(worker) TypeError: received() only accepts 0 arguments, 2 given! The URL is OK, I externally checked, and return the expected. So, what I'm trying to do here is call my Worker when outpost is instantiated, then the Worker call the site in the run function, and then set the variables and return itself. Back to the main class, I have the init where I instantiate the Worker and return it in the emit(). If I got it correctly, when I call the 'outpost.received.connect(IPSUM)', IPSUM will be execute when, and only when I have all values set, because in my Outpost class it will emit when it has everything done, did I get it right? OFF-TOPIC: You guys said that my emails had some trash HTML and strange stuffs, is it OK now?
-- https://mail.python.org/mailman/listinfo/python-list