在python和Pyqt5中访问另一个类中的类方法和类变量
因此,我创建了两个屏幕,一个用于登录,另一个用于显示内容。对于login类,我定义了3个方法auth()、_get()和getAllSheets()。如果登录成功,则关闭登录类并打开MainApp类。我想在MainApp类中使用getAllSheets方法,因此我实例化了在python和Pyqt5中访问另一个类中的类方法和类变量,python,pyqt5,Python,Pyqt5,因此,我创建了两个屏幕,一个用于登录,另一个用于显示内容。对于login类,我定义了3个方法auth()、_get()和getAllSheets()。如果登录成功,则关闭登录类并打开MainApp类。我想在MainApp类中使用getAllSheets方法,因此我实例化了lalpha=Login(),并调用了data=lalpha.getAllSheets(),但我发现了一个错误,即请求因错误而失败 将代码附加为主app.py import statement ui,_ = loadUiTy
lalpha=Login()
,并调用了data=lalpha.getAllSheets()
,但我发现了一个错误,即请求因错误而失败
将代码附加为主app.py
import statement
ui,_ = loadUiType('main-app.ui')
login,_= loadUiType('login.ui')
config = ConfigParser()
class Login(QMainWindow, login):
def __init__(self):
QMainWindow.__init__(self)
config.read("confignew.ini")
config.sections()
self.setupUi(self)
self.auth()
self.Handle_UiChanges()
def Handle_UiChanges(self):
self.lineEdit_1.setText(config.get("app", "app_user_name"))
self.lineEdit_2.setText(config.get("app", "app_proxy_domain"))
self.lineEdit_3.setText(config.get("app-token", "app_secret_key"))
self.lineEdit_4.setText(config.get("app-excel-sheet","app_excel_sheet_token"))
def auth(self):
self.docid = config.get("app-excel-sheet", "app_excel_sheet_token")
self.catalog_url= "https://core.*****.com/appid"
self.user = config.get("app", "app_user_name")
self.pass_word = str(self.lineEdit_5.text())
self.domain = config.get("app", "app_proxy_domain")
self.token = config.get("app-token", "app_secret_key")
self.string= "https://{}:{}@{}".format(self.user, self.pass_word,self.domain)
self.proxy_one = {"https": self.string}
def _get(self, service_url):
url = self.catalog_url +service_url
headers ={"content-type" : "application/json" "authorization" : "Bearer" + self.token}
try:
response = requests.request("POST", url, data= data_json, headers =headers, proxies = self.proxy_one)
return response.json()
except json.decoder.JSONDecodeError:
return response.text
except requests.exceptions.RequestException as e:
messsagebox.showerror(title= "Error", message = "Request Failed")
return "Error"
def getAllSheets(self):
service_url = 'api/region/v1' + self.docid
response = self._get(service_url)
return response
def load_content(self):
dicti = self.getAllSheets()
if type(dicti) == dict:
self.window2 = MainApp()
self.close()
self.window2.show()
else:
print("ERRor ")
class MainApp(QMainWindow, ui):
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.Handle_UiChanges()
self.Handle_ButtonChanges()
def Handle_UiChanges(self):
lalpha = Login()
data = lalpha.getAllSheets()
print(data)
new_excel_sheet_id = self.lineEdit_7.text()
lalpha.docid = new_excel_sheet_id
data_new = lalpha.getAllSheets()
print(data_new)
self.textEdit_3.setText(data_new)
def main():
app = QApplication(sys.argv)
win = Login()
win.show()
app.exec_()
if __name__ == "__main__":
main()
我还想知道我使用class方法def Handle\u UiChanges()
更新MainApp类中的class变量self.docid
的方法是否正确