目录
[1. 简单教程](#1. 简单教程)
[2. 要点说明](#2. 要点说明)
[2.1 TCommands以及TCommands基类](#2.1 TCommands以及TCommands基类)
[2.2 FUICommandInfo](#2.2 FUICommandInfo)
[2.3 FUICommandList](#2.3 FUICommandList)
[2.4 FUIAction](#2.4 FUIAction)
[2.5 UICommand](#2.5 UICommand)
[3. 代码源码](#3. 代码源码)
[4. 工具使用](#4. 工具使用)
[4.1 Display Ul Extension Points](#4.1 Display Ul Extension Points)
[4. 参考文章](#4. 参考文章)
Slate基础使用说明
1. 简单教程
2. 要点说明
2.1 TCommands以及TCommands基类
cpp
/** A base class for a set of commands. Inherit from it to make a set of commands. See MainFrameActions for an example. */
template<typename CommandContextType>
class TCommands : public FBindingContext
cpp
/**
* Represents a context in which input bindings are valid
*/
class SLATE_API FBindingContext
: public TSharedFromThis<FBindingContext>
2.2 FUICommandInfo
cpp
private:
/** Input commands that executes this action */
TArray<TSharedRef<FInputChord>> ActiveChords;
/** Default display name of the command */
FText Label;
/** Localized help text for this command */
FText Description;
/** The default input chords for this command (can be invalid) */
TArray<FInputChord> DefaultChords;
/** Brush name for icon to use in tool bars and menu items to represent this command */
FSlateIcon Icon;
/** Brush name for icon to use in tool bars and menu items to represent this command in its toggled on (checked) state*/
FName UIStyle;
/** Name of the command */
FName CommandName;
/** The context in which this command is active */
FName BindingContext;
/** The bundle to group this command into. The bundle must have been added to the BindingContext first. */
FName Bundle;
/** The type of user interface to associated with this action */
EUserInterfaceActionType UserInterfaceType;
/** True if should we use long names for when getting text for input chords */
bool bUseLongDisplayName;
2.3 FUICommandList
cpp
class SLATE_API FUICommandList
: public TSharedFromThis<FUICommandList>
2.4 FUIAction
cpp
/**
* Implements an UI action.
*/
struct SLATE_API FUIAction
{
/** Holds a delegate that is executed when this action is activated. */
FExecuteAction ExecuteAction;
/** Holds a delegate that is executed when determining whether this action can execute. */
FCanExecuteAction CanExecuteAction;
/** Holds a delegate that is executed when determining the check state of this action. */
FGetActionCheckState GetActionCheckState;
/** Holds a delegate that is executed when determining whether this action is visible. */
FIsActionButtonVisible IsActionVisibleDelegate;
/** Can this action can be repeated if the chord used to call it is held down? */
EUIActionRepeatMode RepeatMode;
2.5 UICommand
cpp
#define UI_COMMAND( CommandId, FriendlyName, InDescription, CommandType, InDefaultChord, ... ) \
3. 代码源码
4. 工具使用
4.1 Display Ul Extension Points
4. 参考文章
https://docs.unrealengine.com/5.2/zh-CN/slate-editor-window-quickstart-guide-for-unreal-engine/
观察UE4的界面命令(UICommand)扩展编辑器界面的流程并实践_ue4 查看编辑器界面一些功能的函数流程_YakSue的博客-CSDN博客
(UE4 4.21 ) UE4给编辑器添加菜单栏(Menu),工具栏(TooBar),Tab窗口_ue4左侧工具栏怎么打开_带帯大师兄的博客-CSDN博客