0 votes

I'm trying to use signals to update a text from a label, but it's not working.

I have a Singleton (notification.gd) just to declare the signal:

extends Node

signal validate_answer(answerData)

And it is emited in the function in another script:

func drop_data(_position, data):
    answerSelected = {"id":data.id , "description": data.description, "status":data.status}
    SIGN.emit_signal("validate_answer" , answerSelected)
    get_tree().change_scene("res://scenes/validation.tscn")

Then I have the scene that will connect to the signal:

extends Control

onready var resultLabel = $MarginContainer/VBoxContainer/Resultado

func _ready():
    SIGN.connect("validate_answer" , self , "on_validate_answer")

func on_validate_answer(answerData):
    resultLabel.text = answerData["description"]

I thought that this would update the text property, but it is not. What am I missing here?

in Engine by (12 points)

1 Answer

–1 vote

SomeRandomScene.gd:

func buttonHandler(name, sender):
        G_Events.emit_dialogResult({ "id": menuID, "button": name})

Singleton (G_Events.gd):

extends Node

signal dialogResult

func emit_dialogResult(data):   
     emit_signal("dialogResult", data)

OtherScene.gd

func _ready():
    init()

func init():
    G_Events.connect("dialogResult", self, "dialogResult")

func dialogResult(data):
     print(data)
by (95 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.