понедельник, 2 июля 2018 г.

00.02 Структура приложения WxWidgets

Чтобы создать приложение wxWidgets, нужно создать наследника класса wxApp и переопределить метод wxApp::OnInit.
В приложении должен быть (фрейм) верхнего уровня: wxFrame или wxDialog. Каждый фрейм может содержать один или более экземпляр классов контролов, таких как wxPanel, wxSplitterWindows и других контролов и окон.


Фрейм может содержать wxMenuBar,  wxToolBar,  wxStatusBar, и  wxIcon (для случая, когда фрейм с иконкой).
Контрол wxPanel используется для размещения контролов (классов-наследников от  wxControl), которые используются для взаимодействия с пользователем. Примеры таких контролов: wxButtonwxCheckBoxwxChoicewxListBoxwxRadioBox, и wxSlider.
Экземпляры wxDialog также могут быть использованы для размещения контролов, диалоги хороши тем, что не требуют создания отдельных окон.
Вместо создания диалогового окна с последующим наполнением его элементами, возможно выбрать один из удобных готовых классов диалогов:  например, wxMessageDialog и wxFileDialog.
Вы никогда не рисуете прямо в окне - вы используете контекст устройства (DC). wxDC является предком wxClientDC , wxPaintDC , wxMemoryDC , wxPostScriptDC , wxMemoryDC , wxMetafileDC и wxPrinterDCЕсли ваши функции рисования имеют wxDC в качестве параметра, вы можете передать любой из этих контролов в функцию и, таким образом, использовать один и тот же код для рисования на нескольких разных устройствах. Вы можете рисовать, используя функции - члены класса wxDC, такие как wxDC :: DrawLine и wxDC :: DrawText . Управлять цветом  окна  (wxColour), кистями (wxBrush) и перьями (wxPen).
Для перехвата событий, добавляем макро wxDECLARE_EVENT_TABLE в объявление класса окна, и помещаем блок wxBEGIN_EVENT_TABLE ... wxEND_EVENT_TABLE в файл реализации. Внутри блока, между этими макросами, добавляем макрос события, которые сопоставляет событие (например, клик мышью) с функцией-членом. Эти макросы могут переопределять предопределенные обработчики событий, такие как wxKeyEvent и wxMouseEvent.
Большинство современных приложений имеют встроенную оперативную гипертекстовую справочную систему, чтобы сделать такое, нужно использовать wxHelp и класс wxHelpController для управления wxHelp.
GUI - приложения - это не только волшебство графики. Понадобятся списки, хэш-таблицы, для этого есть wxList и wxHashMap. Также понадобятся платформенно - независимые средства для работы с файлами и каталогами; возможно, будет удобно искать и хранить списки файлов и путей к ним с помощью  wxPathList. Есть множество Различных методов для взаимодействия с операционной системой и других функций.

Комментариев нет:

Отправить комментарий