我希望你能在
Gtk :: DrawableArea
上使用鼠标事件来绘制一条线。 我想要的是:
- 单击"Line Button"以激活线事件
- 在绘图区中选择第一个点(已经绘制)
- 现在选择第二个点(同样已经绘制)
- 线应该在两个点之间绘制出来
Gtk::DrawingArea
- 使用cairo手动绘制的2个点(圆圈),需要创建线条
drawingArea:: drawingArea()
{
signal_draw().connect(sigc::mem_fun(*this, &drawingArea::on_draw), false);
}
而on_draw函数绘制背景:
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->save();
cr->arc(10.0, 10.0, 1.0, 0.0, 2 * M_PI); // full circle
cr->set_source_rgba(0.0, 0.0, 0.8, 0.6); // partially translucent
cr->fill_preserve();
cr->restore();
cr->stroke();
return true;
}
附言:我可以在on_draw函数中轻松地添加两个点。我是Gtkmm的新手,所以请帮忙解释一下。