如何从蓝图与UMG小部件通信以更新文本框?

时间:2019-04-26 02:00:36

标签: events unreal-blueprint unreal-umg

我有一个日历类,我想用它来更新具有新日期和时间的小部件。

到目前为止,我已经尝试了对Google所做的一切。我已经找到了许多示例,这些示例说明了如何使用事件分派从小部件到bluprint进行通信,但是我找不到如何反向进行通信。

我希望基本上具有这种逻辑流程

  1. 在第三人称控制器上动态创建一个小部件以显示日历信息(WORKS)

  2. 日历类中的
  3. 会在刻度上更新,并计算日期等(WORKS)->

  4. 在先前创建的小部件上显示新数据

第3步是我坚持的部分。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

据我所知,您可以通过按按钮来创建窗口小部件,但不能更新数据。如果是,那么可以轻松解决。

想法:

1-将日历类用作3D世界中任何角色的演员。在您的小部件事件构造中获取Calendar类(考虑到此小部件不会绘制一次)并更新数据。

2-如果该窗口小部件绘制一次,则事件构造将不会运行多次,除非对层次进行更改,这样想法1才会起作用。为此,让我们在日历类中创建一个调度程序,并将其绑定到一个将更新小部件类中的数据的函数。在需要时致电调度员。

请附上一些代码的图片,以便您在反向交流时遇到问题。但是我认为您在获取参考文献时遇到问题。当动态创建窗口小部件时,将其设置为变量并将其存储在日历类可以访问的蓝图中。这使我们想到了想法3:可以访问日历类中的窗口小部件变量,您现在甚至不需要任何调度程序。直接在小部件上调用函数以更新数据。

GUI编程不应掉以轻心,并且在编码之前必须考虑一个好的体系结构。作为一种实践,尝试创建一个类,所有小部件都可以从中访问数据。希望对您有所帮助。