在我的第一个 Gtkmm 3.0 程序中,我遇到了程序结构和从 DrawingArea 类访问我的类数据的问题。
基于来自 gnome 网站的演示程序(“绘制细线”),我有一个窗口类、一个绘图区域类和一个带有用户数据的 Board 类。
一个drawingArea 对象被定义为windows 类中的一个成员变量。在窗口类构造函数中,我实例化了一个 Board 对象。
现在我想访问drawingArea 类的on_draw 例程中的Board 成员变量。最好的方法是什么?
我的董事会课程有:
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;