您现在的位置是:首页 >其他 >Open3D C++系列教程 (六)菜单栏-文件拾取网站首页其他

Open3D C++系列教程 (六)菜单栏-文件拾取

吉拉尔 2026-05-06 12:01:04
简介Open3D C++系列教程 (六)菜单栏-文件拾取

Open3D C++系列教程 (六)菜单栏-文件拾取

前置:
Open3D C++系列教程 (一)
Open3D C++系列教程 (二)
Open3D C++系列教程 (三)
Open3D C++系列教程 (四)
Open3D C++系列教程 (五)


这里主要介绍文件拾取对话框以及菜单栏中的文件拾取功能。

1. 文件拾取对话框

Open3D中的文件对话框具有三种模式:

  • 打开文件:FileDialog::Mode::OPEN
  • 保存文件:FileDialog::Mode::SAVE
  • 打开文件夹:FileDialog::Mode::OPEN_DIR

创建文件对话框是必须指定以上三种模式之一。

此外,还必须设置完成取消的回调函数。因此,一个最基本的文件对话框的使用应该有下面这样的形式:

auto dlg = std::make_shared<gui::FileDialog>(gui::FileDialog::Mode::OPEN,
                                             "title",
                                             win->GetTheme());
dlg->SetOnDone(callback_on_done);
dlg->SetOnCancel(callback_on_cancel);

还可以设置对话框的初始目录以及添加过滤器:

dlg->SetPath("D:/");
dlg->AddFilter(".txt", "text file (.txt)");
dlg->AddFilter("", "All Files");

2.菜单栏的文件拾取功能

在上一节中,我们粗略的定义了对应MenuId的回调函数,并没有实现打开文件的具体逻辑:

auto OnItemOpenFile = [&]()
        {
    std::cout << 
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。