【发布时间】:2021-03-14 16:07:56
【问题描述】:
当我的标签中没有文本(最后一个剩余的字符刚刚被删除并且标签为空)以及第一个字符被写入空标签(所以它不再是空的了)?
if text.empty(): 和 if not text.empty(): 在我“主动”查找实际状态时工作,例如,通过按下连接按钮,但我不知道如何让标签“主动”发出这样的信号“在更改为所述状态时自行运行。这怎么可能?
【问题讨论】:
当我的标签中没有文本(最后一个剩余的字符刚刚被删除并且标签为空)以及第一个字符被写入空标签(所以它不再是空的了)?
if text.empty(): 和 if not text.empty(): 在我“主动”查找实际状态时工作,例如,通过按下连接按钮,但我不知道如何让标签“主动”发出这样的信号“在更改为所述状态时自行运行。这怎么可能?
【问题讨论】:
好吧,通过 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()
【讨论】: