В этом уроке мы рассмотрим как виджеты могут взаимодействовать между собой в приложении.
Для начала мы создадим 2 класса LeftPanel и RightPanel - Левая и правая панель
Теперь рассмотрим подробнее класс LeftPanel. Сначало мы наследуем класс от wxPanel и передаем родителя панель в класс. Далее создаем 2 кнопки класса wxButton - btnPlus, btnMinus которые при нажатии должны увеличивать счетчик или уменьшать. Соотвественно создем 2 event функции которые будут выполнять данное действие.
Также мы получаем объект родительского класса - MainWin *mainWin = (MainWin *) parentPanel->GetParent();
В правой панели мы помещает текстовое поле класса wxStaticText. И по умалчанию ставим значение ноль.
Как в прошлом уроке сначала размещаем базовую панель - wxPanel *panel = new wxPanel(this, wxID_ANY);
Как показано выше в левой панели мы создали объект ссылающую на родителя. Также мы увеличиваем или уменьшаем счетчик соотвественно кнопке. Далее мы через родительский объект (mainWin) передаем в текстовое поле(textLabel) правой панели (rightPanel) значение счетчика(count) - mainWin->rightPanel->textLabel->SetLabel(wxString::Format(wxT("%d"), count));
И теперь при нажатии кнопки в правой панели значение уменьшается или увеличивается в зависимости от того какая кнопка была нажата