Метод создания пустого каталога с диспетчере файла

StackOverflow https://stackoverflow.com/questions/8827818

  •  27-10-2019
  •  | 
  •  

Вопрос

Я компилирую Linux с Qt Creator. Я уже закончил основы моего графического интерфейса с помощью Qt Designer. Теперь мне нужно знать, есть ли доступный метод, который открывает файловый менеджер и позвольте мне создать каталог с именем ME?

Я нашел это:

QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile);

(видеть http://doc.qt.io/archives/qt-4.7/qfiledialog.html#directory.)

Я подключил QPushbutton методом и написал выше в него. Проблемы: файловый менеджер даже не открывается, когда я нажимаю кнопку. Кроме того, это должно работать только для создания не существующих файлов (см. Anyfile), но мне нужно создать не существующий каталог.

Я также знаю эту возможность для создания каталога:

QDir("/home/name").mkdir("NewDirectory");

Но это не удовлетворяет мои требования, поскольку имя и каталог всегда одинаковы.

Это было полезно?

Решение

Вот для решения проблемы с несуществующимися папками / файлами:

Вам нужны некоторые переменные:

QString path_trunk;
QString name;

И в слоте, который вызывается вашим кнопкой, вам придется настроить параметры, чтобы они подходят для ваших требований. Например, вы можете использовать параметры, передаваемые через кнопку или управлять некоторыми внутренними событиями. В этом случае вы можете, конечно, динамически создавать папки с помощью переменных:

path_trunk = QString("/home/username/");
name = QString("Folder_name");

QDir(path_trunk).mkdir(name);

Другой, более удобный для пользователя способ, чтобы получить значения из пользовательского интерфейса с помощью элемента редактирования линий / текста, который позволяет пользователю вводить пользовательский путь. Вы можете прочитать значения через класс пользовательского интерфейса (здесь я только что использовал стандартное имя 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 "Создать папку" в вашем пользовательском языке адресата файлов)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top