gtk.treeview에서 클릭을 잡는 방법?
-
21-08-2019 - |
문제
TreeView의 빈 구역에서 더블 클릭 이벤트를 잡아 새 노드를 만들려고합니다. 불행히도 표준 방식은 작동하지 않습니다. 나는 Treview와 TV가 호스팅되는 스크롤 Window에 ButtonPressevent를 첨부하려고 시도했습니다. 내 기능에 대한 콜백이 없습니다.
이것을 어떻게 해결할 수 있습니까?
해결책
핸들러의 glib.connectbeforeattribute를 사용하여 treeview.buttonpressevent를 처리해야합니다. 그렇지 않으면 위젯이 내부적으로 이벤트를 처리하고 핸들러가 호출되지 않습니다.
예시:
[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
if (e.Type == Gdk.EventType.TwoButtonPress)
{
// double click
}
}
다른 팁
http://old.nabble.com/cellrenderer-editable-on-double-click-td24975510.html
self.treeview.connect("button-press-event",self.cell_clicked)
def cell_clicked(self, widget, event):
if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
print "Double clicked on cell"
TreeView에는 그 자체의 창이 있다고 생각합니다.
창 핸들을 얻은 다음 sendMessage (TreeView-> getSafehwnd (), TVI_ROOT, TVICHILDREN)
위의 보내기 메시지는 이해하기위한 것입니다.
제휴하지 않습니다 StackOverflow