[Qt] Поясните что такое событие
От: Vit1251 Россия  
Дата: 11.01.08 22:02
Оценка:
Добрый день!

Нашел в интернете пример с использованием событий. Немогу пока понять
как это работает. Подскажите пожалуйста где почитать доходчиво о
событиях в C++.
Posted via RSDN NNTP Server 2.1 beta

14.01.08 17:18: Перенесено модератором из 'C/C++' — это вопрос по событиям в библиотеке Qt. Соответственно, поправил название, чтобы не смущать публику — Кодт
20.01.10 20:59: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Поясните что такое событие
От: Roman Odaisky Украина  
Дата: 11.01.08 22:34
Оценка:
Здравствуйте, Vit1251, Вы писали:

V>Нашел в интернете пример с использованием событий. Немогу пока понять

V>как это работает. Подскажите пожалуйста где почитать доходчиво о
V>событиях в C++.

События и C++ — ортогональные вещи. Есть языконезависимое понятие «событие», и есть реализации на C++ и на других языках.

Если уяснишь для себя принцип, то с легкостью напишешь реализацию на любом языке.

http://en.wikipedia.org/wiki/Event-driven_programming
До последнего не верил в пирамиду Лебедева.
Re: Поясните что такое событие
От: LaptevVV Россия  
Дата: 12.01.08 06:22
Оценка:
Здравствуйте, Vit1251, Вы писали:

V>Добрый день!


V>Нашел в интернете пример с использованием событий. Немогу пока понять

V>как это работает. Подскажите пожалуйста где почитать доходчиво о
V>событиях в C++.
В стандартном С++ событий нет.
События есть либо в библиотеках расширения тип VCL от Борланд, либо в С++|CLI — это расширение С++ от Микрософт в дотнете.
С++|CLI — это почти C# в синтаксисе С++. Так что можешь читать и C#
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Поясните что такое событие
От: rg45 СССР  
Дата: 12.01.08 09:34
Оценка: 1 (1)
Здравствуйте, Vit1251, Вы писали:

V>Добрый день!


V>Нашел в интернете пример с использованием событий. Немогу пока понять

V>как это работает. Подскажите пожалуйста где почитать доходчиво о
V>событиях в C++.

Концептуально — это шаблон (паттерн) проектирования, известный в ООП под названием Наблюдатель (Observer). В разных языках эта концепция может быть реализована по-разному. В C#, например, механизм событий встроен в язык и основан на делегатах. В C++ можно использовать бустовскую реализацию boost_signals. Последние, кстати, прекрасно документированы (документация входит в состав библиотеки).

К сожалению, из твоего вопроса не совсем понятно, что именно тебе непонятно Неплохо было бы, если бы ты привел ссылку и сформулировал вопрос более конкретно.
--
Справедливость выше закона. А человечность выше справедливости.
Re[2]: Поясните что такое событие
От: Vit1251 Россия  
Дата: 12.01.08 15:57
Оценка:
rg45 пишет:
> Здравствуйте, Vit1251, Вы писали:
>
> V>Добрый день!
>
> V>Нашел в интернете пример с использованием событий. Немогу пока понять
> V>как это работает. Подскажите пожалуйста где почитать доходчиво о
> V>событиях в C++.
>
> Концептуально — это шаблон (паттерн) проектирования, известный в ООП под названием Наблюдатель (Observer). В разных языках эта концепция может быть реализована по-разному. В C#, например, механизм событий встроен в язык и основан на делегатах. В C++ можно использовать бустовскую реализацию boost_signals. Последние, кстати, прекрасно документированы (документация входит в состав библиотеки).
>
> К сожалению, из твоего вопроса не совсем понятно, что именно тебе непонятно Неплохо было бы, если бы ты привел ссылку и сформулировал вопрос более конкретно.

В программировании в C++ под UNIX в библиотеке Xlib есть такая
замечательная штка как handler_event() он получаеться когда
данному окну приходит событие. Вот я никак понять немогу как
это организовано. Вроде понятно что просто метод вызываеться,
но как определяеться что именно этому классу и именно этому
экземпляру. Или при приходе события оно отправляеться всем
экземплярам — так это ж расточительно очень? Тут никаких ресурсов
не напасешься. Хотя вроде сталкивался в Qt с такой конструкцией как
connect_signal. Вот хочу поподробнее разузнать об устройстве этого
изнутри. С точки зрения концептуальной новизны и отличия вызова
просто функции по указателю.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Поясните что такое событие
От: Ka3a4oK  
Дата: 13.01.08 09:16
Оценка:
Сигналы и события вроде как разные концепции.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[2]: Поясните что такое событие
От: Ka3a4oK  
Дата: 13.01.08 09:26
Оценка:
События и сигналы, кажется, разные концепции.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[3]: Поясните что такое событие
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 27.01.08 17:55
Оценка:
Здравствуйте, Ka3a4oK, Вы писали:

KK>Сигналы и события вроде как разные концепции.


Не совсем. По дизайну Qt "сигнал" — это тип события (например, "нажатие левой кнопки мыши" или "получение фокуса"), и ему в классе обработчика ассоциируется "слот" — функция-обработчик. Только в отличие от многих других библиотек — назначения эти можно устанавливать в рантайме, что устраняет необходимость переопределения своими классами. Всё это "на пальцах", но общая идея должна быть ясна.
The God is real, unless declared integer.
Re[3]: Поясните что такое событие
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 27.01.08 18:14
Оценка:
Здравствуйте, Vit1251, Вы писали:

V>В программировании в C++ под UNIX в библиотеке Xlib есть такая

V>замечательная штка как handler_event() он получаеться когда
V>данному окну приходит событие. Вот я никак понять немогу как
V>это организовано. Вроде понятно что просто метод вызываеться,
V>но как определяеться что именно этому классу и именно этому
V>экземпляру.

Должно быть отображение (map AKA hash AKA dict) из ID окна, которое использует X-сервер, во внутренний ID библиотеки (проще всего — просто указателем). Ищи, где это отображение хранится, или просто поверь, что оно есть:)
The God is real, unless declared integer.
Re[4]: Поясните что такое событие
От: Ka3a4oK  
Дата: 27.01.08 18:32
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, Ka3a4oK, Вы писали:


KK>>Сигналы и события вроде как разные концепции.


N>Не совсем. По дизайну Qt "сигнал" — это тип события (например, "нажатие левой кнопки мыши" или "получение фокуса"), и ему в классе обработчика ассоциируется "слот" — функция-обработчик. Только в отличие от многих других библиотек — назначения эти можно устанавливать в рантайме, что устраняет необходимость переопределения своими классами. Всё это "на пальцах", но общая идея должна быть ясна.


Вы, наверно, не долго работали с QT. В Qt события и мыши и фокуса обрабатываются не через сокеты. Это спор о терминах, например статья из Википедии. Я должен был сказать, что это не совсем одинаковые концепции.
... << RSDN@Home 1.1.4 stable rev. 510>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.