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() 関数を使用できます。描画領域で再描画するにはどうすればよいですか?
どんな助けでも本当に感謝します!