crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> намертво виснет QFileDialog::getSaveFileName, OS linux ubuntu, qt 4.5.2, IDE NetBeans 6.7
Yura
  опции профиля:
сообщение 28.7.2009, 22:18
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 13.10.2008
Пользователь №: 391

Спасибо сказали: 0 раз(а)




Репутация:   0  


OS linux ubuntu, qt 4.5.2, IDE NetBeans 6.7

есть слот:
Код:

void MainWidget::SlotSaveGraphic() {
    QString str = QFileDialog::getSaveFileName(0, "Сохранить график", "", "Images (*.png *.xpm *.jpg)");
}

слот соединен с кнопкой. При нажатии виснет программа намертво. Наблюдается именно в NetBeans 6.7 под линуксом.
Если компилирую через QDevelop или "ручками" (qmake -project, qmake, make) то всё работает и нечего не виснет... пользователю предлагается ввести имя файла.
Пробовал компилировать в NetBeans 6.7 под виндой - тоже всё отлично работает.
непонятно почему при вызове SlotSaveGraphic() программа виснет именно когда компилирую в среде NetBeans под линуксом
???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 29.7.2009, 9:12
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Yura,
думаю если интересно,
надо код getSaveFileName
в библиотеке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Yura
  опции профиля:
сообщение 29.7.2009, 17:18
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 13.10.2008
Пользователь №: 391

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(kwisp @ 29.7.2009, 10:12) *
думаю если интересно,
надо код getSaveFileName
в библиотеке.



не понял тебя
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.7.2009, 17:42
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Yura @ 29.7.2009, 21:18) *
не понял тебя
+1 :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 29.7.2009, 23:00
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Litkevich Yuriy @ 29.7.2009, 18:42) *
+1 :)

-1
что не понятного надо код функции смотреть...
как это я умудрился целое слово пропустить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Yura
  опции профиля:
сообщение 30.7.2009, 6:37
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 13.10.2008
Пользователь №: 391

Спасибо сказали: 0 раз(а)




Репутация:   0  


ну вот:


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();
}



только что это даст?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.7.2009, 6:54
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Yura @ 29.7.2009, 2:18) *
При нажатии виснет программа намертво. Наблюдается именно в NetBeans 6.7 под линуксом.
а программу ты запускаешь из файлового мэнеджера или из NetBeans?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 30.7.2009, 9:11
Сообщение #8


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


теперь надо последовательно смотреть что эта функция использует и как это зависит от компилятора. по-просту нужно найти всякие #ifndef #ifdef в функциях использованных в getSaveFileName.
это такое знакомство с исходниками. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.7.2009, 10:24
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


kwisp, NetBeans - это же IDE, а не компилятор.
Как он может учитываться в исходнике Qt?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 30.7.2009, 11:04
Сообщение #10


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Litkevich Yuriy,
ну к примеру ключик сборки в опциях компилятора, либо версия компилятора, стоит где-нибудь или галочка. я не утверждаю просто предполагаю.это все, если Yurе, верить на слово и разница только в этом.



а вообще, можно еще сайт этой самой IDE посетить, может баг какой есть???
поискать в багах Qt функцию getSaveFileName.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.9.2019, 13:51