Skip to content

Latest commit

 

History

History
121 lines (112 loc) · 7.78 KB

File metadata and controls

121 lines (112 loc) · 7.78 KB

MineCursor项目编程指引

项目结构

图形化界面编写指南

本项目采用了控件布局与控件逻辑分离的方式 一个控件的功能类会继承这个控件的逻辑类

这是普通UI组件的初始化顺序

ui_class函数()会寻找所有调用栈中与传入类重名但没有UI后缀的类, 并返回该类

实际上是为了UI类在被非UI类初始化时可以把UI类中的UI类替换为对应的非UI类(有点绕

graph LR
    CursorEditor --> CursorEditorUI
    CursorEditorUI --> ui_ElementListCtrlUI["ui_class(ElementListCtrlUI) = ElementListCtrl"] --> ElementListCtrlUI
    CursorEditorUI --> ui_ElementCanvasUI["ui_class(ElementCanvasUI) = ElementCanvas"] --> ElementCanvasUI
    CursorEditorUI --> ui_InfoEditorUI["ui_class(InfoEditorUI) = InfoEditor"] --> InfoEditorUI

Loading

theme_editor.pytheme_creator.py有些不同,它们共用几个列表组件

graph LR
    ThemeEditor --> ThemeEditorUI
    ThemeEditorUI --> ThemeSelectorUI["ui_class(ThemeSelectorUI) = ThemeSelector"] --> PublicThemeSelector
    ThemeEditorUI --> ThemeCursorListUI["ui_class(ThemeCursorListUI) = ThemeCursorList"] --> PublicThemeCursorList
    CursorsSelector --> CursorsSelectorUI
    CursorsSelectorUI --> ui_PublicThemeSelectorUI["ui_class(PublicThemeSelectorUI) = PublicThemeSelector"] --> PublicThemeSelectorUI
    CursorsSelectorUI --> ui_SourceThemeCursorListUI["ui_class(SourceThemeCursorListUI) = SourceThemeCursorList"] --> SourceThemeCursorListUI ---> PublicThemeCursorList
    CursorsSelectorUI --> ui_NewThemeCursorListUI["ui_class(NewThemeCursorListUI) = NewThemeCursorList"] --> NewThemeCursorListUI --> PublicThemeCursorList
Loading