Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: denis от Октябрь 29, 2012, 11:05



Название: QFileDialog::getExistingDirectory для выбора нескольких директорий
Отправлено: denis от Октябрь 29, 2012, 11:05
Код:
    QString dirPath = QFileDialog::getExistingDirectory(0, "Open Directory",
                                                     "c:",
                                                     QFileDialog::ShowDirsOnly
                                                     | QFileDialog::DontResolveSymlinks);

    QMessageBox::warning( 0," windowTitle()",  dirPath );

1. Если выбираю в диалоге несколько директорий, то показывается пустое сообщение.
2. Если использую getOpenFileNames, то не получается отобразить только директории, без файлов

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


Название: Re: QFileDialog::getExistingDirectory для выбора нескольких директорий
Отправлено: Пантер от Октябрь 29, 2012, 11:53
http://doc.qt.digia.com/4.8-snapshot/qfiledialog.html#getOpenFileNames
QFileDialog::ShowDirsOnly передаешь в Options options и будет тебе счастье. ;)


Название: Re: QFileDialog::getExistingDirectory для выбора нескольких директорий
Отправлено: Serr500 от Октябрь 29, 2012, 12:24
http://doc.qt.digia.com/4.8-snapshot/qfiledialog.html#getOpenFileNames
QFileDialog::ShowDirsOnly передаешь в Options options и будет тебе счастье. ;)
Это не работает.


Название: Re: QFileDialog::getExistingDirectory для выбора нескольких директорий
Отправлено: Bepec от Октябрь 29, 2012, 12:32
Проверял?


Название: Re: QFileDialog::getExistingDirectory для выбора нескольких директорий
Отправлено: Serr500 от Октябрь 29, 2012, 12:38
Проверял?
Да. Только что. Отображает все файлы и выбрать каталог не даёт - диалог открывает внутри его содержимое.


Название: Re: QFileDialog::getExistingDirectory для выбора нескольких директорий
Отправлено: denis от Октябрь 29, 2012, 14:31
похоже, что решения нет, кроме как написать свою кроссплатформенную функицю? если есть желающие написать такую функцию, могу заплатить. пишите в личку.


Название: Re: QFileDialog::getExistingDirectory для выбора нескольких директорий
Отправлено: Bepec от Октябрь 29, 2012, 14:50
Сейчас посмотрю что за закавыка.

Пара секунд размышлений, наследование от QFileDialog -> нахождение selectedFiles() -> профит.

Берёте ваш диалог, переопределяете
Код:
virtual void	accept ()
virtual void changeEvent ( QEvent * e )
virtual void done ( int result )
и у вас кроссплатформенный выбор множества каталогов. Ннэ? ннэ однако :)
Если покумекать то спокойно можно сделать. Но у меня желание копаться ушло вместе со свободным временем, лависта :)


PS так же постановка флага setAcceptMode(QFileDialog::AcceptSave); не решает вашу проблему?