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

UE5中如何通过按钮点击事件修改TextBlock文本?

UE5通过按钮点击修改User Widget文本块内容的方法

蓝图实现步骤

  • 打开你的User Widget蓝图,确认已添加Button和TextBlock控件。
  • 给TextBlock设置可引用的变量:选中TextBlock,在Details面板的「Variable」区域修改「Variable Name」(比如叫TargetTextBlock),点旁边的「Promote to Variable」按钮,把它变成蓝图变量。
  • 给Button绑定点击事件:选中Button,在Details面板的「Events」区域找到「OnClicked」,点旁边的「+」进入事件图表。
  • 在事件图表里,从Button的OnClicked节点拖出连线,添加Set Text节点,把刚才创建的TargetTextBlock变量拖到Set Text的「Target」引脚。
  • 在Set Text的「Text」引脚输入你要改成的内容(可以直接输字符串,也可以绑定其他变量)。
  • 保存编译蓝图,运行游戏点按钮,文本块内容就会更新。

C++实现(进阶参考)

如果后续想尝试用C++实现,步骤如下:

  1. 在User Widget的头文件中声明控件指针和回调函数:
#pragma once

#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "Components/TextBlock.h"
#include "Components/Button.h"
#include "MyUserWidget.generated.h"

UCLASS()
class YOURPROJECT_API UMyUserWidget : public UUserWidget
{
    GENERATED_BODY()

protected:
    virtual void NativeOnInitialized() override;

private:
    UPROPERTY(meta = (BindWidget))
    UTextBlock* TargetTextBlock; // 要和蓝图中控件的变量名对应

    UPROPERTY(meta = (BindWidget))
    UButton* UpdateTextButton; // 你的按钮变量名

    UFUNCTION()
    void OnButtonClicked();
};
  1. 在cpp文件中实现逻辑:
#include "MyUserWidget.h"

void UMyUserWidget::NativeOnInitialized()
{
    Super::NativeOnInitialized();

    if (UpdateTextButton)
    {
        UpdateTextButton->OnClicked.AddDynamic(this, &UMyUserWidget::OnButtonClicked);
    }
}

void UMyUserWidget::OnButtonClicked()
{
    if (TargetTextBlock)
    {
        TargetTextBlock->SetText(FText::FromString(TEXT("修改后的文本内容")));
    }
}
  1. 回到蓝图,在Details面板的「Bind Widget」区域,把对应的TextBlock和Button绑定到C++声明的变量上。

内容的提问来源于stack exchange,提问作者Claire

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:57:17