Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: blood_shadow от Май 22, 2011, 13:18



Название: QFileDialog и setLabelText
Отправлено: blood_shadow от Май 22, 2011, 13:18
Чет немного не понимаю делаю так:
Код
C++ (Qt)
QFileDialog fileDialog;
fileDialog.setLabelText(QFileDialog::Accept, tr("Save this"));
fileDialog.setLabelText(QFileDialog::Reject, tr("Cancel"));
 
QString destination =
       fileDialog.getSaveFileName(0, tr("Save as"), fileName,
                                   fileExtension);
 

но всеравно получаю стандартные подписи кнопок ("Сохранить и Отмена"),
можно ли задать свои имена этим кнопкам и как?


Название: Re: QFileDialog и setLabelText
Отправлено: marbius от Май 22, 2011, 13:36
Код
C++ (Qt)
QFileDialog fileDialog;
fileDialog.setLabelText(QFileDialog::Accept, tr("Save this"));
fileDialog.setLabelText(QFileDialog::Reject, tr("Cancel"));
fileDialog.setWindowTitle(tr("Save as"));
fileDialog.setDirectory(fileName);
fileDialog.setFilter(fileExtension);
fileDialog.exec();
 
как-то так...


Название: Re: QFileDialog и setLabelText
Отправлено: LisandreL от Май 22, 2011, 14:19
µarbius всё правильно написал. Получать результат будете так:
Код
C++ (Qt)
QString destination;
if ( fileDialog.exec() )
{
   destination = fileDialog.selectedFiles().first();
}
else
{
  ...
}
Поясню только, что getSaveFileName - статическая функция, поэтому из fileDialog никакие настройки и не берёт (и брать не может).

Если аналогично будете диалог открытия файлов делать, то надо добавить строчку:
Код
C++ (Qt)
fileDialog.setFileMode(QFileDialog::ExistingFile);
Или QFileDialog::ExistingFiles, если допускается открытие файлов.


Название: Re: QFileDialog и setLabelText
Отправлено: blood_shadow от Май 22, 2011, 15:24
все понял, но при fileDialog.exec() появляется не стандартный диалог(не родной)
можно как-то вызвать родной диалог и поменять в нем названия кнопок?


Название: Re: QFileDialog и setLabelText
Отправлено: LisandreL от Май 22, 2011, 18:31
Нативные диалоги - только в статических функциях. Либо шашечки, либо ехать. http://stackoverflow.com/questions/2609119/qt-qfiledialog-native-dialogs-only-with-static-functions