您现在的位置是:首页 >技术交流 >Open3D C++系列教程(五)创建菜单栏网站首页技术交流

Open3D C++系列教程(五)创建菜单栏

吉拉尔 2026-01-24 12:01:04
简介Open3D C++系列教程(五)创建菜单栏

Open3D C++系列教程(五)菜单栏

前置:
Open3D C++系列教程 (一)环境搭建
Open3D C++系列教程 (二)第一个GUI窗口
Open3D C++系列教程 (三)关于程序异常退出的探讨
Open3D C++系列教程 (四)动画 Tick事件


该部分介绍菜单栏的创建。

1. 菜单项ID

菜单栏中的每一项使用唯一的ID进行标识,可以用于后续的触发事件的注册。

enum MenuId
{
   
    OPEN_FILE = 1,
    OPEN_DIRECTORY,
    QUIT,
    ADD_SPHERE,
    ADD_CUBE,
    CLEAR_SCENE
};

2. 创建菜单栏

这里定义一个辅助函数用来创建菜单栏以及菜单栏中的每一项,并将其与MenuId关联。

std::shared_ptr<gui::Menu> CreateMenubar()
{
   
    auto menubar = std::make_shared<gui::Menu>();

    auto file_menu = std::make_shared<gui::Menu>();
    file_menu->AddItem("Open", OPEN_FILE);
    file_menu->AddItem("Open Directory", OPEN_DIRECTORY);
    file_menu->AddSeparator();
    file_menu->AddItem("Quit", QUIT);
    menubar
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。