1

写真

私がやろうとしているのは、Gtk Iconview (画像の青いボックス) のセルの特定の位置をクリックしたかどうかを調べることです。

これが可能かどうかの現在の調査中に、次の2つの方法のいずれかを介してカーソル位置を取得できることがわかりました。

方法 1: 現在のカーソルが IconView のどこにあるかを検出できるように、POINTER_MOTION_MASK を追加します。

すなわち

 self.iconview.add_events(Gdk.EventMask.POINTER_MOTION_MASK)
 self.iconview.connect("motion-notify-event", self.on_pointer_motion)

したがって、現在のカーソル位置とセルは次のように見つけることができます。

 def on_pointer_motion(self, widget, event):
    path= self.get_path_at_pos(event.x, event.y)

方法 2: 「ボタン押下イベント」に接続する

 self.iconview.connect("button-press-event", self.on_mouse_click)

 def on_mouse_click(self, widget, event):
    path= self.get_path_at_pos(event.x, event.y)

私が必要とするのは、図の青色で示されているように、event.x と event.y をセル内の特定の領域に関連付けることができるかどうかを判断することです。

GtkCellAreaGtkCellAreaBox、およびGtkIconViewの非公式の参考資料を見てきましたが、これに役立つ明らかなイベント/関数は見当たりません。

このタスクを解決するための正しい方向への指針を誰かに教えてもらえますか?

私は開発環境として Python 2.7 と GTK+ 3.2 を使用していますが、Python 3+ と GTK+ 3.2 以降のすべてのバージョンの GTK もターゲットにしています。

4

1 に答える 1