在 gdscript 中,当在 godot 引擎中单击复选框时,如何让切换函数执行某些操作

问题描述 投票:0回答:1

在gdscript(使用godot 4.1.1 stable)中,我正在开发一个动态添加复选框的函数,效果很好 但是当我尝试让它在切换时执行某些操作时,我收到各种错误,这是我的小功能

func _on_add_left_button_pressed():
    var checkbox = CheckBox.new()
    var text = houseNum.text
    leftList.add_child(checkbox)
    checkbox.text = text
    checkbox.connect("toggled", self, "_on_checkbox_toggled")

目前我已经定义了上面的

"_on_checkbox_toggled"
,但它目前没有做任何事情,只是有一个打印语句

checkbox.connect
行给了我一个错误:

“connect()”函数的参数无效:参数 2 应该是“Callable”,但却是“res://main.gd”

任何帮助将不胜感激

dynamic-programming gdscript godot4
1个回答
0
投票

您似乎错误地调用了

connect
方法。

在 Godot4 中,我们需要传递给方法的唯一参数是信号名称和信号触发时要调用的函数。

所以尝试这样的事情:

func _on_add_left_button_pressed():
    var checkbox = CheckBox.new()
    checkbox.connect("toggled", _on_checkbox_toggled)
    leftList.add_child(checkbox)

func _on_checkbox_toggled(is_toggled):
    print("Checkbox is toggled: ", is_toggled)

这里是有关通过代码连接信号的官方文档的链接。该页面还显示了以编程方式或通过编辑器连接到信号的各种其他方式: https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html#connecting-a-signal-via-code

© www.soinside.com 2019 - 2024. All rights reserved.