Сигнал создаёт функцию, и использовать значение которая она передаёт можно только в ней
Сигнал не создаёт никакую функцию. Он испускается, а объекты, подписанные на него, реагируют при испускании и выполняют функцию, которая передается аргументом.
Что значит "функция передаётся аргументом"?
Неверно выразился. Сигнал подключается к узлу, к которому привязан скрипт. В аргументах метода испускания можно указать нужные значения. А в объекте, который подписан на этот сигнал, обработать эти значения в функции foo, которая указана через connect(foo)
Обсуждают сегодня