Название: QFileDialog: выделение файлов и папок Отправлено: Hellenna от Декабрь 01, 2005, 16:12 Приветстую всеx.
Сорри за долгое отсутсвие - перемены в жизни. :) вопрос: qt-3.3.3, как сделать так, чтобы используя QFileDialog можно было выделять и файлы И папки? а то ExistingFiles дает выделять только файлы, Directory - только папки, объединить их не получается... :( Может есть какой-нибудь другой компонент, который разрешает делать это? Название: QFileDialog: выделение файлов и папок Отправлено: zlatko от Декабрь 01, 2005, 16:46 сори за любопытнось но мне на ум не приходит ситуация в которой через QFileDialog нужно выбырать и файлы и папки :roll:
Название: QFileDialog: выделение файлов и папок Отправлено: Hellenna от Декабрь 02, 2005, 10:18 Цитата: "zlatko" сори за любопытнось но мне на ум не приходит ситуация в которой через QFileDialog нужно выбырать и файлы и папки :roll: программа архиватор - надо добавлять записи в архив, можно добавить как файлы, так и целые каталоги. Удобно дать пользователю возможность выбрать их за один раз в одном диалоге ;) Название: QFileDialog: выделение файлов и папок Отправлено: Dendy от Декабрь 02, 2005, 20:54 А нету такого в QFileDialog (что есть странно). Решение могу подсказать следующее:
Код: class MyFileDialog : public QFileDialog :D Название: QFileDialog: выделение файлов и папок Отправлено: Hellenna от Декабрь 04, 2005, 16:04 Цитата: "Dendy" А нету такого в QFileDialog (что есть странно). Решение могу подсказать следующее не очень поняла суть :( можно или более подробный код или просто объяснить принцип? Название: QFileDialog: выделение файлов и папок Отправлено: Dendy от Декабрь 05, 2005, 14:17 Ну принцёп такой, что для задач, не подходящих под статические функции ( ::question(), ::information() etc. ) есть возможность наследуясь от QFileDialog получить более широкие возможности. Например - получение файлов и папок. В enum QFileDialog::FileMode нету чего-то вроде AnyFileOrDirectory. Поєтому делаем так как я привёл вьlше. Метод accept() виртуальньlй, исполнен он будет при нажатии кнопки Ок или как она там звётся. Собственно, переопределяя его и получаем наши вьlделенньlе файлики с папочками с помощью selectedFiles(). А там уже сами решаем, что с ними делать.
Есть вариант обозвать енто статической функцией: Код: class MyFileDialog А вообще - рьlться в исходниках QFileDialog :D Сподіваюсь що допоможе, якщо ні - запитуйте, завжди раді допомогти! Название: QFileDialog: выделение файлов и папок Отправлено: Hellenna от Декабрь 06, 2005, 15:32 Цитата: "Dendy" А вообще - рьlться в исходниках QFileDialog :D Сподіваюсь що допоможе, якщо ні - запитуйте, завжди раді допомогти! Спасибо за помощь. Попробую что получится. :) Название: QFileDialog: выделение файлов и папок Отправлено: Hellenna от Декабрь 08, 2005, 18:21 Цитата: "Dendy" Есть вариант обозвать енто статической функцией: может чего не так сделала, но: Код:
как не выделялись файлы и каталоги, так и не выделяются... попробовала поковырять исходними QFileDialog, в течении 20 минут найти концы не смогла, больше времени не было. Pезультатом стали две кнопки одна на добавление файлов, другая на добавление каталогов... :( Название: QFileDialog: выделение файлов и папок Отправлено: Dendy от Декабрь 09, 2005, 18:00 Вот попробовал сам сделать. Пример короче некуда. Всё чудесно работает:
Код: #include <QApplication> Пост Скріптум. Навскидку. Есть такая штука - порядок выполнения конструкторов, создавая слот в порождённом окне не получится сконнектить его из конструктора базового типа, ибо послений ничего не знает о предпоследнем..... тьху... о порождённом, о! Посему братья-близнецы QFileDialog::accept() и FilesDirsDialog::accept() (у тебя) всего-лишь однофамильцы - это два разных метода. QFileDialog благополучно сконнектится в конструкторе к своему слоту. Твой вьlполнится только потому, что он виртуальньl, но никак не из-за того, что он обьявлен как public slots:. Посему, всякая мета-информация вместе с Q_OBJECT в данном случае ненужна. Название: QFileDialog: выделение файлов и папок Отправлено: Hellenna от Декабрь 14, 2005, 14:35 Цитата: "Dendy" f.setFileMode( ExistingFiles ); Попробовла (взяла твой код и засунула в прогу). точно также благополучно выделяются либо один файл, либо один каталог, а мне надо несколько :( Может все наши проблемы от того что у тебя судя по заголовкам qt4, а у меня 3.5? Название: QFileDialog: выделение файлов и папок Отправлено: Dendy от Декабрь 15, 2005, 17:29 Значит проблема в том, что ни при каких настройках не получается вьlделить одновременно папку и файл или папку и папку? Хммм... В Qt4 можно, но если при ентом нажать на "Открьlть" - зайдёт в первую из вьlделенньlх папок. Вопчем, советую дебажить исходники Qt ;)
|