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

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

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

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

前置:
Open3D C++系列教程 (一)环境搭建
Open3D C++系列教程 (二)第一个GUI窗口
Open3D C++系列教程 (三)关于程序异常退出的探讨
Open3D C++系列教程 (四)动画 Tick事件
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 = [&](
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。