虚幻5-Ue4|5的Editor window custom自定义原始必须系统学习的代码
目录
记录一些c 虚幻引擎的代码
、估计没有UE经验的看不明白
但有经验的又不需要看
所以这个分享,有些无谓
打开一个界面的时候,可以关闭一些界面
如这个链接可以知道:
UE4 自定义DockTab(四) - 知乎 (zhihu.com)
-
/// <summary>
-
/// Step---2、打开DockTab的函数逻辑
-
/// </summary>
-
void FBPEditorMenuModule::OnOpenCustomDockTab()
-
{
-
if (ActiveTab.IsValid())
-
{
-
if (ActiveTab->CanCloseTab())
-
{
-
ActiveTab->RequestCloseTab();
-
ActiveTab = nullptr;
-
}
-
}
-
if (FBPEditorMenuModule::GatherWBPInfo())
-
{
-
FGlobalTabmanager::Get()->InvokeTab(DockTabNameId);
-
}
-
}
创建自定义Editor Window
《不说了,官方文档有》
就是没说如何监听关闭
Window - SWindow 的关闭
如何找到下面代码?明显在于查找字串
“window xxx being destroyed"
而这个事件,才是重点
WindowClosedEvent.Broadcast( SharedThis( this ) );
-
/** Calls OnWindowClosed delegate and WindowClosedEvent when this window is about to be closed */
-
void SWindow::NotifyWindowBeingDestroyed()
-
{
-
OnWindowClosed.ExecuteIfBound( SharedThis( this ) );
-
WindowClosedEvent.Broadcast( SharedThis( this ) );
-
-
-
if(bIsModalWindow)
-
{
-
FCoreDelegates::PostSlateModal.Broadcast();
-
}
-
-
-
// Logging to track down window shutdown issues
-
if (IsRegularWindow())
-
{
-
UE_LOG(LogSlate, Log, TEXT("Window '%s' being destroyed"), *GetTitle().ToString());
-
}
-
}
某Develop官方插件的pushWindow 代码c
-
void UE::MultiUserServer::FModalWindowManager::PushWindow(const TSharedRef<SWindow>& Window)
-
{
-
if (ensureMsgf(bRootWindowIsValid, TEXT("Root window has already been destroyed!")))
-
{
-
check(!WindowStack.Contains(Window));
-
WindowStack.Push(Window);
-
-
Window->GetOnWindowClosedEvent().AddLambda([this](const TSharedRef<SWindow>& Window)
-
{
-
// Might request window destruction twice
-
if (WindowStack.Contains(Window))
-
{
-
PopWindow();
-
}
-
});
-
}
-
}
最后,不用SWindow->Closed,也可以
据网上说SWindow,继承自SComponentWidget
Slate 是否又是基类
在如此多搞不清楚,理不顺,我也管不了的情况下,
我找到一个 TabClosed 的方法,能实现所需效果
(c 的面向对象还是很烦的,各种宏更是恶心。。。。。。再次印证了四字成语。。。。。。。。。。。。过犹不及。。。)
-
TSharedRef<SDockTab> FSearchUIWindowModule::OnSpawnPluginTab(const FSpawnTabArgs& SpawnTabArgs)
-
{
-
-
/*FText WidgetText = FText::Format(
-
LOCTEXT("WindowWidgetText", "Add code to {0} in {1} to override this window's contents"),
-
FText::FromString(TEXT("FSearchUIWindowModule::OnSpawnPluginTab")),
-
FText::FromString(TEXT("SearchUIWindow.cpp"))
-
);*/
-
-
return SNew(SDockTab)
-
.TabRole(ETabRole::NomadTab)
-
[
-
-
// Put your tab content here!
-
/* SNew(SBox)
-
.HAlign(HAlign_Center)
-
.VAlign(VAlign_Center)
-
[
-
SNew(STextBlock)
-
.Text(WidgetText)
-
]*/
-
SNew(SSQuickStartWindowMenu)
-
]
-
.OnTabClosed(SDockTab::FOnTabClosedCallback::CreateLambda([this](TSharedRef<SDockTab> Self) {
-
//this->OnWindowClose(Self);
-
UE_LOG(LogTemp, Error, TEXT("11-OnWindowClose"));
-
}));
-
-
}
参考-扩展阅读:
(从这些链接的作者再次印证了之前说过的:还在研究c 的都是10 年以上码龄的老油条)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhgbgg
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01