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

使用is_connected检查节点信号连接时,无对应信号的节点触发错误的解决方法

is_connected检查节点信号连接时,无对应信号的节点触发错误的解决方法

其实这个问题很好解决,本质就是你没必要给所有节点都做这个信号检查,毕竟只有LineEdit才有text_entered信号对吧?给你两个实用的方案:

  • 方案一:先筛选出目标节点类型
    既然只有你动态创建的LineEdit节点才会绑定text_entered信号,那遍历子节点时,先判断当前节点是不是LineEdit类型就好了。这样直接跳过Label这类无关节点,根本不会触发信号检查的错误。修改后的代码如下:

    for child in parent.get_children():
        if child is LineEdit:
            if child.is_connected("text_entered", self, "_function_name"):
                child.disconnect("text_entered", self, "_function_name")
            child.queue_free()
    
  • 方案二:先检查节点是否存在目标信号
    如果你不想局限于节点类型(比如未来可能有其他带text_entered信号的节点),可以先用has_signal()方法判断节点是否包含这个信号,再去检查连接状态。这样即使节点没有该信号,也不会报错。代码示例:

    for child in parent.get_children():
        if child.has_signal("text_entered") and child.is_connected("text_entered", self, "_function_name"):
            child.disconnect("text_entered", self, "_function_name")
        child.queue_free()
    

这两个方案都能完美解决你遇到的调试错误,而且逻辑上更严谨——毕竟只有存在对应信号的节点,才需要去检查它的连接状态嘛。

备注:内容来源于stack exchange,提问作者DotFX

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:37:38