Как получить возвращаемое значение из функции подключения - PullRequest
1 голос
/ 22 февраля 2020

Я хочу получить возвращаемое значение функции checkFini sh, цель состоит в том, чтобы сделать «что-то», если полученное значение равно False, есть ли способ получить возвращаемое значение функции, запущенной соединением функция? (спрашивая о кнопке в то же время, потому что это, вероятно, так же.)

код:

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, и функция checkFini sh, которая запускается в фоновом режиме из-за таймера, вернет значение False, проблема снова в том, как получить это значение False в функции register_form, где я запускаю таймер.

1 Ответ

2 голосов
/ 22 февраля 2020

Сигнал служит только для вызова функции и передачи ей некоторых параметров, поэтому вы не можете получить результат вызова функции. Правильный лог c должен вызывать другую функцию, которая оценивает начальную функцию:

# ...
dlg.timer = QTimer(dlg, interval=5)
<b>def onTimeout():
    if checkFinish():
        print("finish")
dlg.timer.timeout.connect(onTimeout)</b>
dlg.timer.start()
# ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...