Название: Получить данные формы из потока Отправлено: Hellion от Август 31, 2011, 14:17 Добрый всем.
Есть форма, на ней текстедит. Есть Х потоков, каждый из которых должен получить следующую строку из едита и что-нибудь с ней сделать. Как реализовать получение данных из главной формы? Название: Re: Получить данные формы из потока Отправлено: Пантер от Август 31, 2011, 14:32 Отсылка сигнала с запросом к главной форме и получение от нее сигнала со строкой.
Название: Re: Получить данные формы из потока Отправлено: Hellion от Август 31, 2011, 17:53 Это я пытался делать. Проблема в том, как правильно тогда ожидать приход данных и отправить данные через сигнал именно этому потоку.
Например Код
Код
Вообщем, может я не совсем понятно объяснил, но тогда можно пример кода, если не затруднит. Название: Re: Получить данные формы из потока Отправлено: popper от Август 31, 2011, 22:50 может быть, для определения потока-эмиттера поможет QSignalMapper? Например, слот будет таким:
Код а в конструкторе: Код
Код
может достаточно в открытой секции класса потока объявить флаг: Код
и дергать его из основного потока, а в потоке-эмиттере: Код
Название: Re: Получить данные формы из потока Отправлено: Hellion от Сентябрь 01, 2011, 00:55 popper, спасибо.
Идея с флагом пришедших данных - это то, на чем я сам остановился, хотелось уточнить, что я не пропустил чего-то и теперь не изобретаю велосипед. Если можно, уточните как отправить данные конкретному потоку? То есть, у нас есть его threadIdent, как теперь отправить именно ему данные? Название: Re: Получить данные формы из потока Отправлено: Bepec от Сентябрь 01, 2011, 07:12 Как вариант
Код: void onNeedData(int threadIdent). а в потоках сделать процедуру отсева, если переменная сигнала не будет равна переменной сигнала. Код: void onNeedData(int threadIdent). Сигнал подсоединить к X потокам и каждый будет обрабатывать только свой сигнал. Название: Re: Получить данные формы из потока Отправлено: ddrtn от Сентябрь 01, 2011, 07:16 Для отправки данных конкретному потоку, вызвав один сигнал, завязанный на много слотов - QSignalMapper
Название: Re: Получить данные формы из потока Отправлено: popper от Сентябрь 01, 2011, 10:23 как вариант, в открытой секции класса потока объявить дополнительно:
Код
тогда в слоте основного потока: Код
а в потоке после того, как флаг готовности данных dataReady будет установлен: Код
Возможно, в Qt есть более изящные решения. Неплохо про потоки написано в Advanced Qt Programming (http://narod.ru/disk/24096091000/2010-07-21.zip.html) |