Russian Qt Forum

Qt => Вопросы новичков => Тема начата: admsasha от Апрель 23, 2018, 16:22



Название: Программа завершается при выборе файла
Отправлено: admsasha от Апрель 23, 2018, 16:22
Во вложении минимальный проект в котором данный баг возникает.

Если выбрать загрузить и выбрать какой либо файл, приложение завершается. Почему ?


Название: Re: Программа завершается при выборе файла
Отправлено: kambala от Апрель 23, 2018, 16:47
у меня не завершается, да и с кодом все в порядке. Qt 5.9.4, macOS 10.12.6, clang.


Название: Re: Программа завершается при выборе файла
Отправлено: admsasha от Апрель 23, 2018, 16:51
У меня Qt 5.9.4, linux, gcc 5.5.0


Название: Re: Программа завершается при выборе файла
Отправлено: kambala от Апрель 23, 2018, 16:54
ну можно взять дебаггер и посмотреть причину


Название: Re: Программа завершается при выборе файла
Отправлено: admsasha от Апрель 23, 2018, 17:04
Программа не падает, а корректно завершается, будто бы все окна закрылись.

Например
Код:
    QApplication::setQuitOnLastWindowClosed(false);
Спасает от этого, но не подходит по другим причинам.


Название: Re: Программа завершается при выборе файла
Отправлено: kambala от Апрель 23, 2018, 17:09
больше похоже на какую-то особенность используемого оконного менеджера.
Код:
    QApplication::setQuitOnLastWindowClosed(false);
Спасает от этого, но не подходит по другим причинам.
можно ставить в false перед выбором файла и возвращать назад на true после.


Название: Re: Программа завершается при выборе файла
Отправлено: admsasha от Апрель 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;
    ....


Название: Re: Программа завершается при выборе файла
Отправлено: admsasha от Апрель 23, 2018, 17:20
больше похоже на какую-то особенность используемого оконного менеджера.
Цитировать
KDE Frameworks 5.43.0,
Qt 5.9.4 (собрана с версией 5.9.4),
Оконная система xcb.


Название: Re: Программа завершается при выборе файла
Отправлено: kambala от Апрель 23, 2018, 18:11
Не помогло.
можно отсрочить установку в true через QTimer::singleShot


Название: Re: Программа завершается при выборе файла
Отправлено: admsasha от Май 06, 2018, 09:18
Под windows, точно так же завершается при
Код:
QColor color = QColorDialog::getColor();