【问题标题】:Godot: Label to "actively" fire Signal when (not) emptyGodot:标签以在(非)空时“主动”触发信号
【发布时间】:2021-03-14 16:07:56
【问题描述】:

当我的标签中没有文本(最后一个剩余的字符刚刚被删除并且标签为空)以及第一个字符被写入空标签(所以它不再是空的了)?

if text.empty():if not text.empty(): 在我“主动”查找实际状态时工作,例如,通过按下连接按钮,但我不知道如何让标签“主动”发出这样的信号“在更改为所述状态时自行运行。这怎么可能?

【问题讨论】:

    标签: text label signals godot


    【解决方案1】:

    好吧,通过 reddit 的 kleonc 刚刚告诉我这个(感谢一百万!):

    您可以在标签的脚本中创建自己的信号。您可以覆盖 _set 方法,您可以在其中检查文本属性是否正在更改并根据新值执行某些操作。像这样的东西应该可以工作:

    extends Label
    
    signal textChanged(newText)
    
    func _set(property, value):
        match property:
            "text":
                if text != value:
                    text = value
                    emit_signal("textChanged", value)
                    return true
        return false
    

    然后您可以将一些方法连接到该信号:

        # ...
        yourLabel.connect("textChanged", self, "onLabelTextChanged")
        # ...
    
    func onLabelTextChanged(newText):
        yourEraseButton.disabled = newText.empty()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 2020-04-12
      • 2015-03-15
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多