Pergunta

No meu aplicativo PYGTK, atualmente uso 'editável' para tornar as células editáveis. Mas como o conteúdo do meu celular às vezes é realmente muito grande, quero pedir ao usuário alterações em uma nova janela quando ele se dobrar em uma célula. Mas não consegui descobrir como prender com cliques duas vezes em Cellrenders específicos - não quero editar a linha inteira e também não quero definir esse retorno de chamada para toda a linha, apenas para colunas onde conteúdo muito longo pode acontecer. Como posso fazer isso com CellRendeRText () ou algo semelhante.

Meu código de geração de células atualmente é:

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])

Obrigado!

Foi útil?

Solução

Eu acredito que isso não é possível diretamente. No entanto, você pode se conectar a button-press-event no gtk.TreeView. Então quando event.type igual a gtk.gdk._2BUTTON_PRESS, converta x e y para o local da árvore usando gtk.TreeView.get_path_at_pos(). Isso retornará um caminho de árvore indicando a linha e gtk.TreeViewColumn objeto no qual o clique foi feito.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top