Russian Qt Forum
Август 17, 2018, 09:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Программа завершается при выборе файла  (Прочитано 605 раз)
admsasha
Новичок

Offline Offline

Сообщений: 9


Просмотр профиля
« : Апрель 23, 2018, 16:22 »

Во вложении минимальный проект в котором данный баг возникает.

Если выбрать загрузить и выбрать какой либо файл, приложение завершается. Почему ?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4012



Просмотр профиля WWW
« Ответ #1 : Апрель 23, 2018, 16:47 »

у меня не завершается, да и с кодом все в порядке. Qt 5.9.4, macOS 10.12.6, clang.
« Последнее редактирование: Апрель 23, 2018, 16:53 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
admsasha
Новичок

Offline Offline

Сообщений: 9


Просмотр профиля
« Ответ #2 : Апрель 23, 2018, 16:51 »

У меня Qt 5.9.4, linux, gcc 5.5.0
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4012



Просмотр профиля WWW
« Ответ #3 : Апрель 23, 2018, 16:54 »

ну можно взять дебаггер и посмотреть причину
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
admsasha
Новичок

Offline Offline

Сообщений: 9


Просмотр профиля
« Ответ #4 : Апрель 23, 2018, 17:04 »

Программа не падает, а корректно завершается, будто бы все окна закрылись.

Например
Код:
    QApplication::setQuitOnLastWindowClosed(false);
Спасает от этого, но не подходит по другим причинам.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4012



Просмотр профиля WWW
« Ответ #5 : Апрель 23, 2018, 17:09 »

больше похоже на какую-то особенность используемого оконного менеджера.
Код:
    QApplication::setQuitOnLastWindowClosed(false);
Спасает от этого, но не подходит по другим причинам.
можно ставить в false перед выбором файла и возвращать назад на true после.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
admsasha
Новичок

Offline Offline

Сообщений: 9


Просмотр профиля
« Ответ #6 : Апрель 23, 2018, 17:17 »

Сделал так
Код:
    QApplication::setQuitOnLastWindowClosed(false);
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open images"),".",tr("Images (*.png *.xpm *.jpg)"));
    QApplication::setQuitOnLastWindowClosed(true);
    if (fileName.isEmpty()) return;
    ....
Не помогло.

Но если для теста так, то не закрывается
Код:
    QApplication::setQuitOnLastWindowClosed(false);
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open images"),".",tr("Images (*.png *.xpm *.jpg)"));
    // QApplication::setQuitOnLastWindowClosed(true);       <-- закомментировал
    if (fileName.isEmpty()) return;
    ....
Записан
admsasha
Новичок

Offline Offline

Сообщений: 9


Просмотр профиля
« Ответ #7 : Апрель 23, 2018, 17:20 »

больше похоже на какую-то особенность используемого оконного менеджера.
Цитировать
KDE Frameworks 5.43.0,
Qt 5.9.4 (собрана с версией 5.9.4),
Оконная система xcb.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4012



Просмотр профиля WWW
« Ответ #8 : Апрель 23, 2018, 18:11 »

Не помогло.
можно отсрочить установку в true через QTimer::singleShot
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
admsasha
Новичок

Offline Offline

Сообщений: 9


Просмотр профиля
« Ответ #9 : Май 06, 2018, 09:18 »

Под windows, точно так же завершается при
Код:
QColor color = QColorDialog::getColor();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.046 секунд. Запросов: 22.