で mouseevents を使用して線を引きたいと思いGtk::DrawableArea
ます。私が欲しいのは次のようなものです:
- ラインボタンをクリックして、ラインイベントを有効にします
- 作図領域で最初の点(すでに描かれている)を選択
- 次に、描画領域で 2 番目の点 (再び描画済み) を選択します。
- 2 点間に線を引く必要があります
私がすでに持っているもの:
Gtk::DrawingArea
- 線を作成するために必要な、cairo を使用して描画された 2 つのポイント (手動円)
以下は、on_draw 関数を呼び出す私のコンストラクターです。
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;
}
PS: この on_draw 関数で 2 つのポイントを簡単に追加できます。私はGtkmmの初心者なので、親切にそれを明らかにするのを手伝ってください。