custom event

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
p001
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sun Aug 28, 2022 9:24 am

custom event

Post by p001 »

Здравствуйте.

Имеем:
1. Мое событие;
2. Таблица событий.

Цель:
Создать свое событие и его использовать. При этом использовать таблицу событий.

Что делал:
1. Читал мануал, ничего не понял, как-то неочевидно;
2. Открыл код по пути wxWidgets\samples\event
Ожидаемо, как-то нагромажде, опять же не смог понять.

Мой код:

Code: Select all

#include <wx/wx.h>
#include <wx/button.h>

wxDEFINE_EVENT (myEvent, wxCommandEvent);

class MyWindow : public wxFrame {
	public:
		wxButton* m_button1;
			const int m_id_button1 = 1;

	public:
		MyWindow (const wxString& aTitle)
                    : wxFrame (0, wxID_ANY, aTitle, wxDefaultPosition, wxSize (150, 150)) {

			m_button1 = new wxButton (this, m_id_button1,
								wxT ("button1"));

			wxBoxSizer* boxSizerV = new wxBoxSizer (wxVERTICAL);
			boxSizerV->Add (m_button1, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5);

			this->SetSizer (boxSizerV);

			Centre ();
		}

		DECLARE_EVENT_TABLE()

	private:
		BEGIN_EVENT_TABLE (MyWindow, wxFrame)
			myEvent (m_id_button1, MyWindow::clickButton)
		END_EVENT_TABLE ()

	public:

		void clickButton (wxCommandEvent& event) {

			if (event.GetId() == m_id_button1) {
				std::cout << "it works" << std::endl;
			}
		}
};

class MyApp : public wxApp {
	public:
		virtual bool OnInit () {
			MyWindow* MyWindow1 = new MyWindow (wxT("MyWindow1"));
			MyWindow1->Show (true);

			return true;
		}
};

IMPLEMENT_APP(MyApp)
Вопрос:
1. как создать свое событие и его использовать ?
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7171
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: custom event

Post by ONEEYEMAN »

Доброго времени суток,
Таблица событий должна быть вынесена в файл-исходник.
На каждый DECLARE_EVENT должен быть свой DEFINE_EVEBT.
Попробуйте посмотреть в исходниках библиотеки как создать событие. Так проще всего.

Если что - спрашивайте.

Спасибо.
User avatar
cutecode
Super wx Problem Solver
Super wx Problem Solver
Posts: 424
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: custom event

Post by cutecode »

p001 wrote: Sat Sep 23, 2023 8:47 pm 1. Читал мануал, ничего не понял
"ничего не понял" - так не бывает, если ты понял хотябы одно предложение в мануале, значит ты хоть что нибудь да понял.
Пиши конкретно что не понятно.

Я начинал изучать с этой книги
https://docs.yandex.ru/docs/view?tm=169 ... 26nosw%3D1
wx 3.1.6 win/mac/linux

regards,
Alexander Saprykin
https://v2.dental-soft.ru
Post Reply