• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

虚幻5-Ue4|5的Editor window custom自定义原始必须系统学习的代码

武飞扬头像
avi9111
帮助5

目录

打开一个界面的时候,可以关闭一些界面

创建自定义Editor Window

Window - SWindow 的关闭

某Develop官方插件的pushWindow 代码c

最后,不用SWindow->Closed,也可以

参考-扩展阅读:


记录一些c 虚幻引擎的代码

、估计没有UE经验的看不明白

但有经验的又不需要看

所以这个分享,有些无谓

打开一个界面的时候,可以关闭一些界面

如这个链接可以知道:

UE4 自定义DockTab(四) - 知乎 (zhihu.com)

  1.  
    /// <summary>
  2.  
    /// Step---2、打开DockTab的函数逻辑
  3.  
    /// </summary>
  4.  
    void FBPEditorMenuModule::OnOpenCustomDockTab()
  5.  
    {
  6.  
    if (ActiveTab.IsValid())
  7.  
    {
  8.  
    if (ActiveTab->CanCloseTab())
  9.  
    {
  10.  
    ActiveTab->RequestCloseTab();
  11.  
    ActiveTab = nullptr;
  12.  
    }
  13.  
    }
  14.  
    if (FBPEditorMenuModule::GatherWBPInfo())
  15.  
    {
  16.  
    FGlobalTabmanager::Get()->InvokeTab(DockTabNameId);
  17.  
    }
  18.  
    }
学新通

创建自定义Editor Window

《不说了,官方文档有》

就是没说如何监听关闭

Window - SWindow 的关闭

如何找到下面代码?明显在于查找字串

“window xxx being destroyed"

而这个事件,才是重点

WindowClosedEvent.Broadcast( SharedThis( this ) );

  1.  
    /** Calls OnWindowClosed delegate and WindowClosedEvent when this window is about to be closed */
  2.  
    void SWindow::NotifyWindowBeingDestroyed()
  3.  
    {
  4.  
    OnWindowClosed.ExecuteIfBound( SharedThis( this ) );
  5.  
    WindowClosedEvent.Broadcast( SharedThis( this ) );
  6.  
     
  7.  
    #if WITH_EDITOR
  8.  
    if(bIsModalWindow)
  9.  
    {
  10.  
    FCoreDelegates::PostSlateModal.Broadcast();
  11.  
    }
  12.  
    #endif
  13.  
     
  14.  
    // Logging to track down window shutdown issues
  15.  
    if (IsRegularWindow())
  16.  
    {
  17.  
    UE_LOG(LogSlate, Log, TEXT("Window '%s' being destroyed"), *GetTitle().ToString());
  18.  
    }
  19.  
    }
学新通

某Develop官方插件的pushWindow 代码c

  1.  
    void UE::MultiUserServer::FModalWindowManager::PushWindow(const TSharedRef<SWindow>& Window)
  2.  
    {
  3.  
    if (ensureMsgf(bRootWindowIsValid, TEXT("Root window has already been destroyed!")))
  4.  
    {
  5.  
    check(!WindowStack.Contains(Window));
  6.  
    WindowStack.Push(Window);
  7.  
     
  8.  
    Window->GetOnWindowClosedEvent().AddLambda([this](const TSharedRef<SWindow>& Window)
  9.  
    {
  10.  
    // Might request window destruction twice
  11.  
    if (WindowStack.Contains(Window))
  12.  
    {
  13.  
    PopWindow();
  14.  
    }
  15.  
    });
  16.  
    }
  17.  
    }
学新通

最后,不用SWindow->Closed,也可以

据网上说SWindow,继承自SComponentWidget

Slate 是否又是基类

在如此多搞不清楚,理不顺,我也管不了的情况下,

我找到一个 TabClosed 的方法,能实现所需效果

(c 的面向对象还是很烦的,各种宏更是恶心。。。。。。再次印证了四字成语。。。。。。。。。。。。过犹不及。。。)

  1.  
    TSharedRef<SDockTab> FSearchUIWindowModule::OnSpawnPluginTab(const FSpawnTabArgs& SpawnTabArgs)
  2.  
    {
  3.  
     
  4.  
    /*FText WidgetText = FText::Format(
  5.  
    LOCTEXT("WindowWidgetText", "Add code to {0} in {1} to override this window's contents"),
  6.  
    FText::FromString(TEXT("FSearchUIWindowModule::OnSpawnPluginTab")),
  7.  
    FText::FromString(TEXT("SearchUIWindow.cpp"))
  8.  
    );*/
  9.  
     
  10.  
    return SNew(SDockTab)
  11.  
    .TabRole(ETabRole::NomadTab)
  12.  
    [
  13.  
     
  14.  
    // Put your tab content here!
  15.  
    /* SNew(SBox)
  16.  
    .HAlign(HAlign_Center)
  17.  
    .VAlign(VAlign_Center)
  18.  
    [
  19.  
    SNew(STextBlock)
  20.  
    .Text(WidgetText)
  21.  
    ]*/
  22.  
    SNew(SSQuickStartWindowMenu)
  23.  
    ]
  24.  
    .OnTabClosed(SDockTab::FOnTabClosedCallback::CreateLambda([this](TSharedRef<SDockTab> Self) {
  25.  
    //this->OnWindowClose(Self);
  26.  
    UE_LOG(LogTemp, Error, TEXT("11-OnWindowClose"));
  27.  
    }));
  28.  
     
  29.  
    }
学新通

参考-扩展阅读:

(从这些链接的作者再次印证了之前说过的:还在研究c 的都是10 年以上码龄的老油条) 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhgbgg
系列文章
更多 icon
同类精品
更多 icon
继续加载