Здравствуйте, гость ( Вход | Регистрация )
void* | Дата 16.6.2008, 14:15 |
я особо не читал, но по моему мнению этот класс служит для организации циклов событий, управления ими, т.е. можно вообще например, выключить события и, например, при нажатии на клавишу ничего не будет происходить. Но это лишь мое мнение, точно не знаю | |
AD | Дата 16.6.2008, 11:18 |
Ну если всего лишь перевести вступление: Цитата The QEventLoop class provides a means of entering and leaving an event loop то получится: Цитата QEventLoop класс предоставляет средства входа и выхода в цикл событий читая далее: Цитата В любое время вы можете создать объект QEventLoop и вызвать exec() для него, чтобы запустить локальный цикл событий. Я не очень понимаю цели этого цикла событий! Зачем он нужен? Можно объяснить на том, примере, что приведен выше? Перевод я догадался сделать! |
|
Litkevich Yuriy | Дата 16.6.2008, 11:01 |
Предназначен обработки в цикле событий или что? Ну если всего лишь перевести вступление: Цитата The QEventLoop class provides a means of entering and leaving an event loop то получится: Цитата QEventLoop класс предоставляет средства входа и выхода в цикл событий читая далее: Цитата В любое время вы можете создать объект QEventLoop и вызвать exec() для него, чтобы запустить локальный цикл событий. |
|
AD | Дата 16.6.2008, 9:59 |
Есть небольшой вопросик на счет QEventLoop! Прочитал про этот класс в хелпе и не понял его предназначения, можете пояснить своими словами, пожалуйста? Предназначен обработки в цикле событий или что? | |
alexondi | Дата 11.6.2008, 23:03 |
Вообщем ситуация с потоками слотами в них такая. Для того чтобы поток мог отрабатывать сигналы от других потоков (что одно и то же - обработка сигналов и слотов объектов в которых находятся объекты ) НЕОБХОДИМО: 1. в поток добавить QEventLoop - это основной механизм через который идет передача сообщений QEvent's а сигналы реализованы как раз с помощью них зы можно сделать локальной переменной в методе run а можно и членом класса - на выбор 2. сам поток необходимо поместить сам в себя т.е. сделать в конструкторе this->moveToThread(this); 3. реализовать м методе run что-то вроде этого
ВСЕ! Теперь все слоты данного потока (а также всех объектов для которых будет вызван метод moveToThread(ref_THREAD) будут выполняться в этом потоке а не в основном. Сам поток тоже может иметь и сигналы и слоты |
|
sploid | Дата 4.6.2008, 14:21 |
если я правильно понял вопрос, то должно быть так ( не тестил ):
а сигнал finished QThread сам генерит при завершении потока. |
|
Litkevich Yuriy | Дата 4.6.2008, 9:18 |
тут почитай: Связь сигналов и слотов между потоками | |
ViGOur | Дата 4.6.2008, 8:23 |
Есть замечательное правило, слот выполняется в том потоке, в котором был создан его объект. Другими словами тебе нужно, чтобы объект слота slotNextValue создавался в потоке MyThread. |
|
silart | Дата 4.6.2008, 8:06 |
Добрый день! Подскажите пожалуйста, кто работал с QThread, каким образом сделать так, чтобы сигналы объекта обрабатывались пользовательским потоком, а не потоком графического интерфейса. Вот у Шлее есть 2 примера: Первый:
Второй:
Как сделать так, чтобы слот slotNextValue() обрабатывался потоком MyThread? В примерах этот слот обрабатывается главным потоком. Есть еще функция moveToThread(), но с ней ничего вообще не получается, в слот не попадает ни один поток... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 24.4.2024, 14:17 |