2010-05-12 3 views
2

내 PyGTK 애플리케이션에서 저는 현재 '편집 가능'을 사용하여 셀을 편집 가능하게 만듭니다. 하지만 내 셀 내용이 때로는 정말 커지기 때문에 셀에 두 번 클릭하면 새 창에서 변경 사항을 사용자에게 묻기를 원합니다. 그러나 특정 셀 렌더러에서 더블 클릭을 연결하는 방법을 찾을 수 없었습니다. 전체 행을 편집하고 싶지 않고 전체 행에 대해이 콜백을 설정하지 않으려 고합니다. 너무 긴 내용 발생할 수 있습니다. 어떻게 CellRendererText() 또는 이와 비슷한 일을 할 수 있습니다.PyGTK : CellRenderer의 Doubleclick

내 현재 세포 생성하는 코드는 다음과 같습니다

cols[i] = gtk.TreeViewColumn(coltitle) 
cells[i] = gtk.CellRendererText() 
cols[i].pack_start(cells[i]) 
cols[i].add_attribute(cells[i], 'text', i) 
cols[i].set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) 
cols[i].set_fixed_width(100) 
cells[i].set_property('editable', True) 
cells[i].connect('edited', self.edited, (i, ls)) 
cols[i].set_resizable(True) 
mytreeview.append_column(cols[i]) 

감사합니다!

답변

3

저는 이것이 직접 가능하지 않다고 생각합니다. 그러나 의 button-press-event에 연결할 수 있습니다. 그런 다음 event.typegtk.gdk._2BUTTON_PRESS 일 때 gtk.TreeView.get_path_at_pos()을 사용하여 xy을 트리 위치로 변환합니다. 행을 나타내는 트리 경로와 클릭이 발생한 gtk.TreeViewColumn 개체가 모두 반환됩니다.

+0

매우 더러운 :-D - 그러나 유일한 가능성은 ... ;-) –

+1

이것은 Pixbufs를 클릭 할 수있게 만드는데도 효과적입니다. – Eldelshell