【发布时间】:2020-11-22 14:03:39
【问题描述】:
我想调用函数,它会改变小部件内的文本。
有一个virtual 函数NativeConstruct,它会自动调用。它会更改小部件的文本,但我需要调用函数 F1 并向其发送我想要显示的 text。但是当我调用它时,变量Name 是nullptr。而且由于某种原因,当程序调用NativeConstruct时,它不是nullptr。
-
Name是我想要更改的文本变量 -
dialogBottom是带有此变量的小部件的名称
编辑
UAccessWidgetFromCpp* AccessWidgetFromCpp
= CreateWidget<UAccessWidgetFromCpp>(
GetWorld()->GetFirstPlayerController(), UAccessWidgetFromCpp::StaticClass()
);
if (AccessWidgetFromCpp)
{
AccessWidgetFromCpp->F1("222");
widgetDialogBottomInstance->AddToViewport();
}
UCLASS()
class HOME_API UAccessWidgetFromCpp : public UUserWidget
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadOnly, meta = (BindWidget))
class UTextBlock* Name = nullptr;
UFUNCTION()
void F1(FString text);
};
void UAccessWidgetFromCpp::F1(FString text)
{
if (auto widget = dynamic_cast<UTextBlock*>(GetWidgetFromName(TEXT("Name"))))
{
Name = widget;
Name->SetText(FText::FromString(text));
}
}
【问题讨论】:
标签: c++ c++11 pointers casting unreal-engine4