Я пытаюсь создать многоуровневые подменю в моем приложении Qt
.Для этой цели я использую вектор с деревом каталогов, например:
C:\Users\meine\Main_menu_dir\folder_1\sub1
C:\Users\meine\Main_menu_dir\folder_1\sub2
C:\Users\meine\Main_menu_dir\folder_1\sub2\subsub1
C:\Users\meine\Main_menu_dir\folder_2\sub1
C:\Users\meine\Main_menu_dir\folder_2\sub1\subsub1
C:\Users\meine\Main_menu_dir\folder_2\sub2\subsub1
C:\Users\meine\Main_menu_dir\folder_2\sub2\subsub2
Я использую boost
lib следующим образом:
#include "boost/filesystem.hpp"
#include <iostream>
namespace fs = ::boost::filesystem;
Я использую итераторчтобы пройти через строку имен и создать дерево подменю:
for (// iter --> iterator in the list of files//)
{
if (fs::is_directory(*iter)) // from boost lib
{
QMenu *subMenu; // create a QMenu object
// name --> name of the directory, i.e.: folder_1, sub1, sub2, ....
subMenu = new QMenu(QString::fromStdString(name), recursiveMenu);
recursiveMenu->addMenu(subMenu);
}
}
, таким образом, я создаю все подменю в папке folder_1 (или, что то же самое, в Main_menu_dir в зависимости от начальной точки в итераторе).recursiveMenu
- это меню, в которое я добавляю подменю.Может быть, я должен обновить его, что-то вроде:
recursiveMenu = subMenu;
Как я могу изменить структуру меню, чтобы иметь следующие уровни меню:
1. Folder_1
1.1 sub1
1.2 sub2
1.2.1 subsub1
2. Folder_2
2.1 sub1
2.1.1 subsub1
2.1.2 subsub2
....
Большое спасибо.