从传递给finished.connect()的函数中获取返回值

问题描述

我正在使用 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 (将#修改为@)