Как указать метод QFileDialog :: getExistingDirectory ()? - PullRequest
4 голосов
/ 08 марта 2012

С помощью метода / команды:

OpenCreateDirectory() 
{  
    QString Directory = QFileDialog::getExistingDirectory(this,
                        tr("Choose Or Create Directory"),
                        "/home",
                        QFileDialog::DontResolveSymlinks);
}

Я могу создать новый каталог или выбрать существующий. Есть ли способ отключить возможность создания нового каталога? Также есть ли способ отключить возможность выбора существующего каталога?

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

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

Вы можете предотвратить создание нового каталога, используя следующие параметры:

QFileDialog::DontUseNativeDialog | QFileDialog::ReadOnly 
| QFileDialog::ShowDirsOnly

Параметры ReadOnly не имеют никакого эффекта, если вы используете собственные диалоги, по крайней мере, в Windows.


А отключить выбор уже существующего каталога нельзя.
Но вы можете либо добавить имя создаваемого каталога в качестве отдельной опции, либо проверить, что выбранный каталог не пустой.
3 голосов
/ 08 марта 2012

Да, вы можете добавить опции QFileDialog::ReadOnly при создании QFileDialog. Так что создайте его с помощью:

QString Directory = QFileDialog::getExistingDirectory(this, tr("Choose Or Create Directory"),
                                                         "/home",
                                                           QFileDialog::DontResolveSymlinks | QFileDialog::ReadOnly);

Кнопка «Создать каталог» диалогового окна файла все еще существует, но вы не можете создать каталог. Я успешно использовал эту функцию в Ubuntu.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...