在gtkmm中绘制绘图区域中的点

时间:2014-07-11 05:31:02

标签: cairo gtkmm drawingarea

我使用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()函数。如何使用它在绘图区域重绘?

任何帮助都应该非常感谢!

0 个答案:

没有答案