PyGTKを:CellRendererの上のダブルクリック
-
26-09-2019 - |
質問
私のPyGTKのアプリケーションでは、私は現在のセルを編集可能にする「編集可能」を使用しています。私のセルの内容は時々本当に大きいので、しかし、私は彼がセルにdoubleclicksたときに、新しいウィンドウで変更をユーザーにお願いしたいと思います。しかし、私は特定のcellrenderers上でダブルクリックにフックする方法を見つけることができませんでした - 私は、全体の行を編集したくないと私はまた、唯一の非常に長いコンテンツ列に対して、行全体のために、このコールバックを設定する必要はありません発生する可能性があります。どのように私はCellRendererText()または同様のもので、これを行うことができます。
私は現在、細胞生成コードがあります:
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])
ありがとうございます。
解決
私は、これが直接可能ではないと信じています。ただし、button-press-event
にgtk.TreeView
に接続することができます。次いで、event.type
はgtk.gdk._2BUTTON_PRESS
を使用してツリーの場所にx
、コンバートy
とgtk.TreeView.get_path_at_pos()
に等しい場合。これは、クリックが行われた行とgtk.TreeViewColumn
オブジェクトを表すツリー・パスの両方を返します。
所属していません StackOverflow