Что такое таблица событий (wxWidgets)? - PullRequest
0 голосов
/ 09 июля 2020

Что такое таблица событий и для чего она нужна? Я спрашиваю о wxWidgets, но, возможно, это общая концепция программирования GUI, поэтому, пожалуйста, поправьте меня в этом.

Ответы [ 3 ]

1 голос
/ 09 июля 2020

Чтобы не усложнять, таблица evend сообщает, какую функцию вызывать при возникновении какого-либо события.

Однако это старый способ сопоставления событий с функциями. Он больше не рекомендуется, потому что он не очень гибкий и использует макросы для выполнения своей работы. Сами макросы обычно не очень рекомендуются в C ++.

Если вы не должны придерживаться C ++ 03, вам больше не следует использовать таблицы событий. Вместо этого вы должны использовать метод привязки для проектов New WXWidgets в C ++ 11 или новее. Привязка более гибкая и не использует макрос.

Вы также найдете эту рекомендацию в руководствах по WXWidgets. Однако вы все равно должны уметь читать и понимать старые таблицы событий, потому что многие образцы не обновлялись уже давно.

0 голосов
/ 09 июля 2020

В дополнение к другим ответам я хотел бы сказать, что если вы начинаете изучать wxWidgets, вы должны знать, что таблицы событий - это устаревший способ обработки событий и что с помощью Bind () - предпочтительный способ сделать это в новом коде.

В частности, Bind() намного меньше "magi c" и не использует никаких макросов.

0 голосов
/ 09 июля 2020

Таблица событий сообщает wxWidgets сопоставлять события функциям-членам. Он должен быть определен в файле. cpp.

wxBEGIN_EVENT_TABLE() 

- это пример макроса

...