Size: a a a

2021 March 29

T

Tamer in Qt
Я всё равно дальше кидаю события
источник

T

Tamer in Qt
Прокидываю*
источник

T

Tamer in Qt
Alexander Bardashevsky
ничего выше нет...

А в агрументы exec ничего не принимает. Мб не туда?
Такой магии не бывает, какая версия qt
источник

AB

Alexander Bardashevs... in Qt
Tamer
Такой магии не бывает, какая версия qt
5.11.0
на 5.9.9 то же самое
источник

AB

Alexander Bardashevs... in Qt
деструктор ~App вызывается, поток один
источник

T

Tamer in Qt
А обычный мейн с QApplication у тебя и без логики то работает?
источник

AB

Alexander Bardashevs... in Qt
да)
источник

T

Tamer in Qt
Ну тогда ты сам на свой вопрос ответил
источник

AB

Alexander Bardashevs... in Qt
я пытаюсь понять что могло сломать event loop , не знаю куда копать
источник

T

Tamer in Qt
Копай в сторону логирования своего
источник

T

Tamer in Qt
Alexander Bardashevsky
я пытаюсь понять что могло сломать event loop , не знаю куда копать
event loop не ломается, он тебе результат возвращает, для простоты поставь точку останова и посмотри что приходит
источник

T

Tamer in Qt
Если ты говоришь что деструктор отрабатывается, то всё корректно
источник

IZ

Ilia Zviagin in Qt
Alexander Bardashevsky
Господа, может кто сталкивался.

Есть класс App, который наследуется от QApplication.

Далее участок кода в main:

   int ret;

   {
       App app( argc, argv );
       ret = app.exec();
       LOG_INFO( "----------- exec finished with: ", ret  );
       // в консоли пишется exec finished with: 0
   }
   
   //До сюда выполнение не доходит, приложение не завершает работу
   
   LOG_INFO( "----------- Остановка приложения -----------: ",ret  );
   return ret;

Деструктор ~App() вызывается. App является parent'ом для всех вложенных в него объектов, которые создаются через some_obj( new SomeObj( this ) ).
Деструкторы всех child'ов не вызываются от слова совсем, т.е. пэрентинг не работает.
если вызывать явно delete для всех child'ов, то приложение все равно не завершается и продолжает где-то висеть...

p.s. для того чтобы найти причину, в приложении оставил только один поток...

Вообще не пойму как такое может быть и куда копать
Скорее всего приложение просто падает. Не обработанное
Исключение , и abort()
источник

AB

Alexander Bardashevs... in Qt
оно не падает, запускаюсь в отладке. Просто не завершается и непонятно где висит
источник

T

Tamer in Qt
Alexander Bardashevsky
оно не падает, запускаюсь в отладке. Просто не завершается и непонятно где висит
А как ты завершаешь работу приложения?
источник

IZ

Ilia Zviagin in Qt
Alexander Bardashevsky
оно не падает, запускаюсь в отладке. Просто не завершается и непонятно где висит
Я неправильно написал.
Догадка ложная.
Но и ты в показаниях путаешся
источник

AB

Alexander Bardashevs... in Qt
Tamer
А как ты завершаешь работу приложения?
По сути из qml, закрывая главное окно:
onClosing: Qt.quit()
источник

꧁꧂ in Qt
если у меня есть Qlist из QActions  и на каждом айтеме стоит чекбокс, то как можно узнать состояние чекбокса?
источник

꧁꧂ in Qt
for (int i = 0; i < list->count(); i++)
   {
     QListWidgetItem* item = list->item(i);
     
     temp = item->text();//беру текст айтема
// не понимаю как взять состояние чекбокса айтема для записи его потом в файл
     if (item->checkState() == true)
     {
       itemStatus = true;
     }
источник

IT

Ivan Titov in Qt
Ilia Zviagin
Определяешь action , ловишь на сигнал, далее в зависимости от контекста возникновения сигнала делаешь одно либо другое действие. Вот и вся наука.

Контекст может быть чем-то типа текущего фокуса, либо что-то типа количества выбранных элементов где-то
В моей ситуации горячие клавиши пересекаются для разных действий. То есть у меня есть 2 разных QAction с одним и тем же шоткатом для одного и того же виджета.
источник