如何通过UnrealEnginePython获取Widget类中UEditableTextBox属性的值
获取UnrealEnginePython中UEditableTextBox的内容
要拿到Widget里UEditableTextBox的文本值,关键是得操作Widget的实例,而不是类本身。你当前的代码只是获取了类的属性定义,没法拿到实际运行时的内容。
正确做法
- 先获取目标Widget的实例对象——可以是你创建的新实例,也可以是场景中已存在的Widget(比如从视口中获取)。
- 通过实例访问UEditableTextBox属性,再调用Unreal API里的
get_text()方法拿到文本。
示例代码:
import unreal_engine as ue # 示例1:从视口中获取已存在的Widget实例(根据实际情况调整) widget_instance = ue.get_editor_subsystem(ue.WidgetBlueprintLibrary).get_widget_from_viewport() # 示例2:通过类名创建新的Widget实例(替换成你的Widget类名) # widget_class = ue.find_class("YourWidgetClassName") # widget_instance = ue.create_widget(widget_class) # 访问你定义的UEditableTextBox属性(替换成你实际的属性名) editable_text_box = widget_instance.EditableTextBox # 获取文本内容,转为Python字符串 text_content = str(editable_text_box.get_text()) print(text_content)
对你现有代码的说明
ue.all_classes()[5494]得到的是Widget的类对象,不是正在运行的实例,类本身没有实际的文本值。.properties()[1]只是列出类的属性列表,属于元数据,不是实例的属性值。
内容的提问来源于stack exchange,提问作者tempaccountforissue
相关产品推荐
相关产品推荐

