새 노드를 만들려면 TreeView의 빈 영역에서 두 번 클릭 이벤트를 잡으려고합니다. 불행히도 표준 방식이 작동하지 않습니다. 나는 TreeView와 T.V.가 호스팅 된 ScrolledWindow에 ButtonPressEvent를 첨부 해 보았습니다. 내 기능에 콜백을받지 못한다.Gtk.TreeView에서 클릭을 잡는 방법?
어떻게 해결할 수 있습니까?
새 노드를 만들려면 TreeView의 빈 영역에서 두 번 클릭 이벤트를 잡으려고합니다. 불행히도 표준 방식이 작동하지 않습니다. 나는 TreeView와 T.V.가 호스팅 된 ScrolledWindow에 ButtonPressEvent를 첨부 해 보았습니다. 내 기능에 콜백을받지 못한다.Gtk.TreeView에서 클릭을 잡는 방법?
어떻게 해결할 수 있습니까?
처리기에서 GLib.ConnectBeforeAttribute를 사용하여 TreeView.ButtonPressEvent를 처리해야합니다. 그렇지 않으면 위젯이 내부적으로 이벤트를 처리하고 핸들러가 호출되지 않습니다.
예 :
[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
if (e.Type == Gdk.EventType.TwoButtonPress)
{
// double click
}
}
트 리뷰에는 독자적인 윈도우가 있다고 생각합니다.
는 창 핸들을 가져 오기 다음 sendMessage 첨부 (treeview-> Getsafehwnd(), tvi_root, tvichildren)위의 송신 메시지는 이해입니다.
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"
당신이 얘기하지만은 Gtk 될 것 같지 않는 툴킷 확실하지 않음) – viraptor
없음은 GTK, 윈도우 프로그래밍이 아니다. 나는 GTK가 비슷한 것을 가지고 있다고 믿는다. 툴킷은 기본 사항을 래퍼합니다. 나는 믿는다. –