OS linux ubuntu, qt 4.5.2, IDE NetBeans 6.7
есть слот:
Код:
void MainWidget::SlotSaveGraphic() {
QString str = QFileDialog::getSaveFileName(0, "Сохранить график", "", "Images (*.png *.xpm *.jpg)");
}
Yura,
думаю если интересно,
надо код getSaveFileName
в библиотеке.
ну вот:
QString QFileDialog::getSaveFileName(QWidget *parent,
const QString &caption,
const QString &dir,
const QString &filter,
QString *selectedFilter,
Options options)
{
if (qt_filedialog_save_filename_hook)
return qt_filedialog_save_filename_hook(parent, caption, dir, filter, selectedFilter, options);
QFileDialogArgs args;
args.parent = parent;
args.caption = caption;
args.directory = QFileDialogPrivate::workingDirectory(dir);
args.selection = QFileDialogPrivate::initialSelection(dir);
args.filter = filter;
args.mode = AnyFile;
args.options = options;
#if defined(Q_WS_WIN)
if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog)) {
return qt_win_get_save_file_name(args, &(args.directory), selectedFilter);
}
#endif
// create a qt dialog
QFileDialog dialog(args);
dialog.setAcceptMode(AcceptSave);
if (selectedFilter)
dialog.selectNameFilter(*selectedFilter);
if (dialog.exec() == QDialog::Accepted) {
if (selectedFilter)
*selectedFilter = dialog.selectedFilter();
return dialog.selectedFiles().value(0);
}
return QString();
}
теперь надо последовательно смотреть что эта функция использует и как это зависит от компилятора. по-просту нужно найти всякие #ifndef #ifdef в функциях использованных в getSaveFileName.
это такое знакомство с исходниками.
kwisp, NetBeans - это же IDE, а не компилятор.
Как он может учитываться в исходнике Qt?
Litkevich Yuriy,
ну к примеру ключик сборки в опциях компилятора, либо версия компилятора, стоит где-нибудь или галочка. я не утверждаю просто предполагаю.это все, если Yurе, верить на слово и разница только в этом.
а вообще, можно еще сайт этой самой IDE посетить, может баг какой есть???
поискать в багах Qt функцию getSaveFileName.
Всё верно это баг http://www.netbeans.org/issues/show_bug.cgi?id=167660
обновился до версии 6.7.1, проблема исчезла
в версии 6.7 проблема решается так:снять галку в project properties->Profile->Profile On Run.
если честно я себе уже хочу на листочке написать и на монитор прибить гвоздем:
"Вася, если что - то не работает, посети прежде всего страницу проекта и багтрекер проекта!"
очень часто такая штуковина происходит.
если бы шеф узнал что я у себя в проге около недели пытался утечки(или нерациональное использование) памяти найти, а на самом деле причина поедания памяти WebKit он бы был очень огорчен....
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)