You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot 4.1.1中GDScript动态添加CheckBox信号绑定报错求助

解决Godot 4中CheckBox信号绑定的错误问题

错误原因

Godot 4对信号连接的API做了修改,不再沿用Godot 3里connect(信号名, 对象, 方法名)的参数格式,要求第二个参数必须是Callable类型,你当前的写法是旧版本语法,因此触发类型不匹配错误。

修复方案

有两种常用的正确写法:

写法1:直接传递方法引用(推荐)

直接把当前节点的方法作为Callable传入,这是Godot 4最简洁的写法:

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)

写法2:用Callable构造器包装

如果需要用字符串指定方法名,可以用Callable构造器把对象和方法名包装成合法的Callable类型:

func _on_add_left_button_pressed():
    var checkbox = CheckBox.new()
    var text = houseNum.text
    leftList.add_child(checkbox)
    checkbox.text = text
    # 用Callable构造器包装对象和方法名
    checkbox.connect("toggled", Callable(self, "_on_checkbox_toggled"))

额外注意事项

确保你的_on_checkbox_toggled函数参数匹配toggled信号的输出,该信号会传递一个布尔值表示CheckBox的选中状态,函数定义应如下:

func _on_checkbox_toggled(is_toggled: bool):
    print("CheckBox状态变化:", is_toggled)

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:28:19