Вот для решения проблемы с несуществующими папок/файлов:
Вы нужны переменные:
QString path_trunk;
QString name;
и в слот, который вызывается по кнопке вы должны настроить параметры, чтобы они соответствовали вашим требованиям. например вы можете использовать параметры, передаваемые через кнопку, или манипулировать некоторыми внутренними событиями. В этом случае вы могли бы, конечно, создавать папки динамически путем использования переменных:
path_trunk = QString("/home/username/");
name = QString("Folder_name");
QDir(path_trunk).mkdir(name);
Другие, более удобный способ будет получать значения из пользовательского интерфейса через линию/редактирование текста элемент, который позволяет пользователю ввести пользовательский путь. Вы можете прочитать значения через UI-класс (здесь я просто использовал стандартное имя QT ui). Имя lineEdit может быть другим в вашем случае, если вы решили назвать его по-другому. Но вы можете получить доступ к данным, тем не менее, и динамически использовать идентификатор в своем базовом коде. Убедитесь, что вы правильно подключили свои сигналы и методы.
void MainWindow::on_pushButton_clicked_path_dynamic()
{
QString temp_path = ui->lineEdit->text();
QDir().mkdir(temp_path);
}
void MainWindow::on_pushButton_clicked_trunk_plus_dynamic()
{
QString ext_path = ui->lineEdit->text();
QDir(path_trunk).mkdir(ext_path);
}
Вот другой подход, так как от моего понимания вы хотите использовать какой-нибудь файловый менеджер:
Что вы на самом деле могли бы сделать, чтобы создать свой собственный файл-менеджер виджетов. Метод QDir в основном дает вам всю необходимую информацию для отображения папки, в т.ч. файлы в некотором Item-based QTreeWidget
, Навигация через это также будет легкой задачей, так как вы можете использовать сигналы и слоты QTreeWidget для навигации, вам просто нужно заполнить Дерево вашей информацией о папке. Создание новой папки было бы только взаимодействием с пользователем (правой кнопкой мыши или, возможно, нажатием кнопки «Создать папку» QPushButton в вашем пользовательском виджете диспетчера файлов)
Помогло ли вам это? Если это было полезно, подумайте о том, чтобы отметить его как полезное/решение или повысить его. – mmoment
Во-первых, thx для вашего ответа. Ваш первый метод похож на второй код, который я написал. Вторая идея интересна. Вы хотите получить имя и путь из двух UI LineEdits. Это также хорошая идея, но я должен спросить, невозможно ли открыть файловый менеджер и создать каталог с файловым менеджером, потому что это было бы гораздо более удобным для пользователя? :) На данный момент я не могу поддержать ваш ответ, потому что у меня нет репутации 15. – Streight