Russian Qt Forum

Qt => Общие вопросы => Тема начата: pablo от Февраль 14, 2005, 16:39



Название: фильтры файлов.
Отправлено: pablo от Февраль 14, 2005, 16:39
Смотрите господа у меня фильтры файлов хранятся в одной строке:
QString fileFilters = tr("Plain Text files (*.txt)\n"
                      "C++ sourse files (*.cpp)\n"
                      "C sourse files   (*.c)\n"
                      "C, C++ header files (*.h)\n");         
Для определения названия файла использую:
QString fileName = QFileDialog::getOpenFileName(".", fileFilters, this);
Вопрос вот в чём:
Как мне узнать какой фильтр файла был выбран, потому что мне хочется зделать так, чтобы была возможность сохранить файл без указания расширения файла в строке названия, а при выборе подходящего фильтра.


Название: фильтры файлов.
Отправлено: Admin от Февраль 14, 2005, 20:50
если ты хочешь получить выбранный фильтр
используй
Цитировать
QString QFileDialog::selectedFilter () const

Returns the filter which the user has selected in the file dialog. See the "selectedFilter" property for details.


но для этого нельзя использовать QFileDialog::getOpenFileName,

а надо создавать диалог по всем правилам
QFileDialog plg =  new QFileDialog();

и поехало


Название: фильтры файлов.
Отправлено: Sergeich от Февраль 15, 2005, 15:29
Цитировать

но для этого нельзя использовать QFileDialog::getOpenFileName,
а надо создавать диалог по всем правилам

Необязательно, см.
Код:

QString QFileDialog::getOpenFileName ( const QString & startWith = QString::null, const QString & filter = QString::null, QWidget * parent = 0, const char * name = 0, const QString & caption = QString::null, QString * selectedFilter = 0, bool resolveSymlinks = TRUE ) [static]

в переменную selectedFilter как раз заноситься выбранный фильтр