我试图在 TreeView 的空白区域中捕获双击事件以创建新节点。不幸的是,标准方式不起作用。我尝试将 ButtonPressEvent 附加到 TreeView 和托管 TV 的 ScrolledWindow。我的函数没有任何回调。
我该如何解决这个问题?
我试图在 TreeView 的空白区域中捕获双击事件以创建新节点。不幸的是,标准方式不起作用。我尝试将 ButtonPressEvent 附加到 TreeView 和托管 TV 的 ScrolledWindow。我的函数没有任何回调。
我该如何解决这个问题?
您需要在处理程序上使用 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)
以上发送信息仅供您理解。