python - 如何从连接函数中获取返回值
问题描述
我想获取 checkFinish 函数的返回值,如果我得到的值为 False,目的是做“某事”,有没有办法获取由 connect 函数启动的函数的返回值?(同时询问按钮,因为它可能是相同的方式。)
代码:
from PyQt5 import QtWidgets, uic
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import *
from functools import partial
registered = False
loginClick = False
def login():
global loginClick
loginClick = True
def checkFinish():
global registered, loginClick
if loginClick or registered:
return False
else:
return True
def register_form():
global registered, loginClick
app = QtWidgets.QApplication([])
dlg = uic.loadUi("registerForm.ui")
dlg.usernameLine.setFocus()
dlg.logInButton.clicked.connect(login)
dlg.timer = QTimer(dlg, interval=5)
dlg.timer.timeout.connect(checkFinish) # Get the return value from here.
#if dlg.timer.timeout.connect(checkFinish): do something example
dlg.timer.start()
dlg.show()
app.exec()
假设我单击 logInButton,登录函数会将 loginClick 的值更改为 True,并且由于计时器而在后台运行的函数 checkFinish 将返回 False,问题再次是如何在 register_form 函数中获取该 False 值我启动计时器。
解决方案
该信号仅用于调用函数并向其传递一些参数,因此您无法获得调用函数的结果。正确的逻辑是调用另一个计算初始函数的函数:
# ...
dlg.timer = QTimer(dlg, interval=5)
def onTimeout():
if checkFinish():
print("finish")
dlg.timer.timeout.connect(onTimeout)
dlg.timer.start()
# ...
推荐阅读
- lua - Lua self 方法调用尝试(一个 nil 值)
- react-native - React Native Expo 出现 Twitch API 401 错误
- php - GetChildHtml 方法为头块返回空字符串- Magento 1.9
- php - 实时服务器上的 IPN 未在 paypal 上更新表
- c++ - 类构造函数中的向量时出现运行时错误?
- java - 我如何理解频繁垃圾收集的原因?
- python - 在 Heroku 上部署烧瓶应用程序时在日志中显示应用程序崩溃
- python - 导入python文件时出现UnicodeError
- selenium - 当不存在禁用属性时,无法使用 selenium 处理禁用元素
- angular - 没有从 getRecipe() 获得价值