我在 gtkmm 中使用以下代码创建了一个绘图区域:
bool DrawingArea::on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
cr->set_source_rgb(1.0, 1.0, 1.0); // white background
cr->paint();
cr->move_to(0,0);
cr->line_to(10,10);
cr->line_to(20,20);
return true;
}
该代码在绘图区域中绘制线条。
在调用绘制点的函数后,我想在该区域绘制一个点。我想在相同的上下文中重新绘制。我是这样做的:
void DrawingArea::on_point()
{
cr->arc(10.0,10.0,1.0,1.0, 2 * M_PI);
cr->set_source_rgba(0.0,0.0,0.8,0.6);
cr->fill_preserve();
cr->stroke();
}
上述函数在点击菜单项时被调用。可以使用 gtkmm 中的 queue_draw() 函数。如何使用它在绘图区域重新绘制?
任何帮助将不胜感激!