Russian Qt Forum

Qt => Вопросы новичков => Тема начата: lexaaleynik от Май 13, 2016, 11:20



Название: Деструктор главной формы вызывается с задержкой
Отправлено: lexaaleynik от Май 13, 2016, 11:20
Программа обменивается по COM-порту с подключенным устройством. Используются QEventloop-ы. При нажатии на кнопку закрыть (кнопка с крестиком в верхнем правом углу) деструктор вызывается с задержкой и обмен ещё продолжается какое-то время, что нехорошо.

Главная форма - объект класса QMainWindow. Я не нашёл в документации, необходимого сигнала, высылаемого при нажатии кнопки с крестиком. Вообще говоря, я не нашёл как обратиться ни к самой кнопке "закрыть", ни к кнопке "свернуть", ни к кнопке "смаштабировать во весь экран".


Название: Re: Деструктор главной формы вызывается с задержкой
Отправлено: VPS от Май 13, 2016, 11:51
Я не нашёл в документации, необходимого сигнала, высылаемого при нажатии кнопки с крестиком.
Смотрите документацию по классу "QCloseEvent", а также почитайте про события.


Название: Re: Деструктор главной формы вызывается с задержкой
Отправлено: Bepec от Май 13, 2016, 12:02
Ну сутя по данным, у вас происходит "забитие" главного евент лупа. Как вариант - вынесите работу с устройством в поток.


Название: Re: Деструктор главной формы вызывается с задержкой
Отправлено: lexaaleynik от Май 13, 2016, 12:10
Я не нашёл в документации, необходимого сигнала, высылаемого при нажатии кнопки с крестиком.
Смотрите документацию по классу "QCloseEvent", а также почитайте про события.

Переопределил виртуальный метод QMainWindow::closeEvent(), в котором просто вызвал exit(0). И всё получилось, спасибо.