我有一个使我发疯的问题。
我有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)))
到目前为止,一切都按我想要的方式工作,而Print(打印)为我提供了我想要的信息。
但是现在我的问题开始了! 从writeagile.fetchUser()“启动”方法agile_ui()时 这些属性将为我更改文本:
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起作用。
希望任何人都可以帮助我。 最好的问候弗雷德里克
答案 0 :(得分:0)
弄清楚了。
需要将返回值更改为仅值, 然后在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])))