Название: Действия при закритии потока. Отправлено: FreTFuL от Август 20, 2010, 22:53 Когда закривається главное окно приложения понятное дело закриваються все потоки. У меня в потоке идет отправка почти. Мне нужно чтоби в момент когда поток собирается закриться виполнилась моя функция по сохранению данних. что мне делать? Подскажите пожалуста какую функцию нужно перезагрузить или какие сигнали использовать.
Название: Re: Действия при закритии потока. Отправлено: merke от Август 21, 2010, 06:37 В заголовочном файле:
protected: virtual void closeEvent(QCloseEvent *e); В файле исходников: void TextEdit::closeEvent(QCloseEvent *e) { if (maybeSave())//Вызываем функцию например: сохранения файла e->accept(); else e->ignore(); } Название: Re: Действия при закритии потока. Отправлено: FreTFuL от Август 21, 2010, 08:45 Функция сохранения находится не в том отоке что гравное окно и когда я перед закритиєм висилаю сигнал сохранится ничего не получається поток просто закривається
Название: Re: Действия при закритии потока. Отправлено: Авварон от Август 21, 2010, 10:37 void QApplication::lastWindowClosed () [signal]
Название: Re: Действия при закритии потока. Отправлено: FreTFuL от Август 21, 2010, 11:53 и оно обработает соединенний сигнал а на закроет тот поток?
Название: Re: Действия при закритии потока. Отправлено: Авварон от Август 21, 2010, 12:28 ты можешь поставить чтоб QApplication не выходил при закрытии окна, сам подписаться на этот сигнал, послать сигналы потокам на выключение, подождать их и только после этого вырубить приложение.
Название: Re: Действия при закритии потока. Отправлено: Igors от Август 21, 2010, 12:41 Нет способа это сделать без участия самой нитки (отправка почты). Она должна напр периодически проверять флажок и если он установлен, то прекратить отправку, записать данные и выйти из run. Когда главная нитка получит closeEvent, она должна установить этот флажок и подождать пока отправка сделает свои дела
Код
P.S. Пожалуйста решите проблему с буквой Ы, а то Ваши посты трудно читать |