Название: QFile::copy - обработка событий. Отправлено: pashazz от Июнь 12, 2010, 23:43 Интересуют 2 вопроса.
Во-первых, как избежать GUI freeze во время копирования файлов (ну тут я думаю можно QEventLoop использовать примерно так:) Код
Во-вторых, как немедленно прервать копирование файла? Название: Re: QFile::copy - обработка событий. Отправлено: serg_hd от Июнь 13, 2010, 00:06 1. Для опроса событий qApp->processEvents(), можно например на таймер его кинуть. Или вообще, копировать в отдельном потоке.
2. Опять же, если в отдельном потоке - terminate() его. Но последствия... Название: Re: QFile::copy - обработка событий. Отправлено: zenden от Июнь 13, 2010, 00:19 1. QThread или QtConcurrent
2. Унаследоваться от QFile, переопределить atEnd () и/или readData, где проверять некоторую переменную-флаг, которую изменять в основном потоке, скажем, по нажатию кнопки. Название: Re: QFile::copy - обработка событий. Отправлено: ритт от Июнь 13, 2010, 00:43 под вендой - пользовать натив апи
под лялихами подобного не встречал (мб даже не существует), но всегда можно написать собственную реализацию, поддерживающую асинхронные операции и отмену... Название: Re: QFile::copy - обработка событий. Отправлено: Igors от Июнь 13, 2010, 04:42 Интересуют 2 вопроса. Ну loop.exec() не вернет управление пока не закончится, поэтому затея не годится. Вообще если использовать ф-цию copy, то на оба вопроса ответ "никак". Надо писать свою ф-цию копирования (примерно 30-40 строк), там пожалуйста. Во-первых, как избежать GUI freeze во время копирования файлов (ну тут я думаю можно QEventLoop использовать примерно так:) Код
Во-вторых, как немедленно прервать копирование файла? Название: Re: QFile::copy - обработка событий. Отправлено: niXman от Июнь 14, 2010, 14:26 http://www.prog.org.ru/index.php?topic=13968.msg90968#msg90968
|