问题描述
我正在使用 Pyqt5 QNetworkManager 在计时器上下载 csv。调用 this 的函数来自外部类。我需要将请求的输出作为原始调用函数中的对象返回。但是,我首先设法获取对象的唯一方法是从finished.connect 语句中获取。我需要原始函数中的输出。
class Model():
def __init__(self):
### These are my login credentials,pickled for safety
self.cred = pickle.load(open( "cred.p","rb"))
def Request(self):
self.cred = pickle.load(open( "cred.p","rb"))
url = 'https://obscuredforsafety.com'
req = QtNetwork.qnetworkrequest(QtCore.QUrl(url))
self.nam = QtNetwork.QNetworkAccessManager()
self.nam.authenticationrequired.connect(self.authenticate)
### This function actually works,but I cannot get the return value back into this scope
ret = self.nam.finished.connect(self.handleResponse)
self.nam.get(req)
### All I need is to return this self.df object so I can send it back to my calling class
try:
### This is where I need my response object to return ###
print(self.df)
except:
pass
### This part works well
def authenticate(self,reply,auth):
auth.setUser(self.cred[0])
auth.setPassword(self.cred[1])
### Handles the response and builds the dataframe properly
### How can I get this self.DF back into the original function so I can return it
def handleResponse(self,reply):
er = reply.error()
if er == QtNetwork.QNetworkReply.NoError:
bytes_string = str(reply.readAll(),'utf-8')
csv = StringIO(bytes_string)
self.df = pd.read_csv(csv,sep = ',')
else:
print("Error occured: ",er)
print(reply.errorString())
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)