在 GTKmm 第一个文档示例和更复杂的时钟示例中,他们继承了public Gtk::DrawingArea
构建他们的应用程序。
#ifndef GTKMM_EXAMPLE_MYAREA_H
#define GTKMM_EXAMPLE_MYAREA_H
#include <gtkmm/drawingarea.h>
class MyArea : public Gtk::DrawingArea
{
public:
MyArea();
virtual ~MyArea();
protected:
//Override default signal handler:
bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr) override;
};
#endif // GTKMM_EXAMPLE_MYAREA_H
是否可以使用DrawingArea
by 组合,而不是继承它并覆盖on_draw
虚拟方法?
我想这样做,不要将我的方法/属性与DrawingArea
从基类继承的方法混合Gtk::DrawingArea
。因此,当我访问某些东西时,我明确地知道我在我的创作中使用了某些东西,因为我的类定义中只有我的东西。虽然从. Gtk::DrawingArea
_Gtk::DrawingArea
Gtk::DrawingArea