UE4笔记---创建提示信息 CreateToolTipWidget

本文是关于UE4中创建提示信息的方法,具体实现参考了UE AssetViewWidgets.cpp文件中的TSharedRef<SWidget> SAssetViewItem::CreateToolTipWidget() const函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


UE4笔记---创建提示信息 CreateToolTipWidget


详细代码来自于UE AssetViewWidgets.cpp 文件
TSharedRef<SWidget> SAssetViewItem::CreateToolTipWidget() const


void UVRSTopmostWindow::ShowWindowToolTip()
{
	HideWindow();
	TArray<FVRSToolTipTagItem> CachedToolTipTags;
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("黑色")), false));
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("白色--家具")), false));
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("红色")), false));
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("红色")), false));
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("红色")), false));
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("红色")), false));
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("红色")), false));
	CachedToolTipTags.Add(FVRSToolTipTagItem(FText::FromString(TEXT("颜色 : ")), FText::FromString(TEXT("红色")), false));

	SAssignNew(TopmostWindow, SWindow)
		.Type(EWindowType::ToolTip)
		.IsPopupWindow(true)
		.IsTopmostWindow(true)
		.SizingRule(ESizingRule::Autosized)
		.SupportsTransparency(EWindowTransparency::PerWindow)
		.FocusWhenFirstShown(false)
		.ActivateWhenFirstShown(false);

	TopmostWindow->SetContent(SNew(SVRSAssetToolTip).NameText(FText::FromString(TEXT("欧式---家具"))).CachedToolTipTags(CachedToolTipTags));
	FSlateApplication::Get().AddWindow(TopmostWindow.ToSharedRef());

	FVector2D DesiredToolTipLocation = FSlateApplication::Get().GetCursorPos(); // 获取鼠标点击位置
	// Make sure the desired size is valid
	TopmostWindow->SlatePrepass(FSlateApplication::Get().GetApplicationScale()*TopmostWindow->GetNativeWindow()->GetDPIScaleFactor());

	FSlateRect Anchor(DesiredToolTipLocation.X, DesiredToolTipLocation.Y, DesiredToolTipLocation.X, DesiredToolTipLocation.Y);
	DesiredToolTipLocation = FSlateApplication::Get().CalculatePopupWindowPosition(Anchor, TopmostWindow->GetDesiredSizeDesktopPixels());

	TopmostWindow->MoveWindowTo(DesiredToolTipLocation);
	TopmostWindow->ShowWindow();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值