В моей первой программе Gtkmm 3.0 у меня возникают проблемы с структурой программы и получением доступа к моим данным класса из класса DrawingArea.Gtkmm 3.0: Как получить данные класса пользователя в методе on_draw DrawingArea
Основываясь на демонстрационной программе с сайта gnome («Рисуем тонкие линии»), у меня есть класс окна, класс drawingArea и класс Board с пользовательскими данными.
Объект drawingArea определяется как переменная-член в классе Windows. В конструкторе класса окна я создаю экземпляр объекта Board.
Теперь я хочу получить доступ к переменным члена Совета в процедуре on_draw в классе drawingArea. Каков наилучший способ сделать это?
Мой класс плата имеет:
class Board {
public:
int sqPix;
Мой класс имеет окно:
Board &ExampleWindow::getBd() { return bdw; }
void ExampleWindow::setBd(Board b) {bdw = b; }
ExampleWindow::ExampleWindow(char * fn, vector<int>& t)
{
Board bd = Board(t);
setBd(bd);
Мое окно класса .h файл имеет:
class ExampleWindow : public Gtk::Window
{
public:
ExampleWindow();
ExampleWindow(char * fn, std::vector<int>& t);
virtual ~ExampleWindow();
Board &getBd();
void setBd(Board b);
private:
Board bdw;
MyArea m_Area;
В разрисованным классе области, я хочу сделать что-то вроде:
bool MyArea::on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
Gtk::Allocation allocation = get_allocation();
=====> int sqPix = ExampleWindow::getBd().sqPix;
ли вы имеете в виду вызвать MyArea конструктор из ExampleWindow с одним аргументом * это? –
Да, это было бы самым простым способом. – Adrian