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();
}