gpt4 book ai didi

Python 将值从一个方法传递到另一个方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:45:36 24 4
gpt4 key购买 nike

我有一个让我抓狂的问题。

我有 2 个模块 Main.py 和 Writeagile.py

在 main.py 上,我有一个 Ui_MainWindow 类,它保存我所有的用户界面。

在 Ui_MainWindow 中我有一个方法“on_click_fetchUser”:

def on_click_fetchUser(self):
_translate = QtCore.QCoreApplication.translate
api = AgileApi()
user_email = self.search_agile.text()

if "@" and "." not in user_email:
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setText("wrong Email")
msg.exec_()
else:
api.fetchUser(email=user_email)

api.fetchUser(email=user_email)进入Writeagile.py以及 fetchUser 方法:

def fetchUser(self,email):

msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
agile_user = self.agileCRM("contacts/search/email/{}".format(email), "GET", None, "application/json")
ui = Ui_MainWindow()
MainWindow = QtWidgets.QMainWindow()
ui.setupUi(MainWindow)
try:
fetch_user = json.loads(str(agile_user))
if email in fetch_user['properties'][4]['value']:
first = (fetch_user['properties'][0]['value'])
last = (fetch_user['properties'][1]['value'])
email = (fetch_user['properties'][4]['value'])

return ui.agile_ui(first=first,last=last,email=email)

except ValueError:
return {msg.setText("User not found in Agile") , msg.exec_()}

这工作正常,我想要的 Json 信息被提取并返回到 Ui_MainWindow 中的新方法,agile_ui:

def agile_ui(self,first,last,email):
_translate = QtCore.QCoreApplication.translate
print(first,last,email)

self.first_name.setText(_translate("MainWindow", "{}".format(first)))
self.last_name.setText(_translate("MainWindow", "{}".format(last)))
self.email.setText(_translate("MainWindow", "{}".format(email)))

到目前为止,一切都按照我想要的方式进行,并且打印给了我确切的信息。

但是现在我的问题开始了!当方法agile_ui()从writeagile.fetchUser()“启动”时将为我更改文本的属性:

self.first_name.setText(_translate("MainWindow", "{}".format(first)))
self.last_name.setText(_translate("MainWindow", "{}".format(last)))
self.email.setText(_translate("MainWindow", "{}".format(email)))

什么都不要做!没有错误或什么都没有!什么也没发生。

如果我删除从 writeagile.fetchUser 传递的所有内容,并在Ui_MainWindow内启动agile_ui,属性起作用并且setText起作用。

希望有人能帮助我。最好的问候弗雷德里克

最佳答案

想通了。

需要将返回更改为仅返回值,然后使用 on_click_fetchUser 方法的返回值:

fetch_user = json.loads(str(agile_user))
if email in fetch_user['properties'][4]['value']:
first = (fetch_user['properties'][0]['value'])
last = (fetch_user['properties'][1]['value'])
email = (fetch_user['properties'][4]['value'])

return first,last,email


def on_click_fetchUser(self):
_translate = QtCore.QCoreApplication.translate
api = AgileApi()
user_email = self.search_agile.text()

if "@" and "." not in user_email:
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setText("Ugyldig Email")
msg.exec_()
else:
result = (api.fetchUser(email=user_email))
self.first_name.setText(_translate("MainWindow", "{}".format(result[0])))
self.last_name.setText(_translate("MainWindow", "{}".format(result[1])))
self.email.setText(_translate("MainWindow", "{}".format(result[2])))

关于Python 将值从一个方法传递到另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52523102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com