C++ GTKMM:Gtk树视图单元格中的GtkPopOver
我怎么能把一个GtkPopOver放在Gtk TreeView的一个单元格中。当我点击单元格时,我需要弹出窗口。 在GTKMM中,我找不到比将GtkTreeView的一个单元格与一个GtkPopover关联起来更好的例子C++ GTKMM:Gtk树视图单元格中的GtkPopOver,c++,gtkmm,C++,Gtkmm,我怎么能把一个GtkPopOver放在Gtk TreeView的一个单元格中。当我点击单元格时,我需要弹出窗口。 在GTKMM中,我找不到比将GtkTreeView的一个单元格与一个GtkPopover关联起来更好的例子 谢谢。经历过类似的情况后,我能够用(python简化版)解决这个问题: 我已经解决了这个问题,下面是我使用的代码的简化版本: class Table(Gtk.TreeView): # Gtk stuff ... @GtkTemplate.Callback
谢谢。经历过类似的情况后,我能够用(python简化版)解决这个问题:
我已经解决了这个问题,下面是我使用的代码的简化版本:
class Table(Gtk.TreeView):
# Gtk stuff ...
@GtkTemplate.Callback
def on_button_press_event(self, widget, event):
path, path_iter, col = self.__get_path_at_position(event)
btn = event.button
if btn == 3:
pop = Gtk.Popover()
# Customize
pop.set_pointing_to(self.get_cell_area(path, col))
pop.set_relative_to(self)
pop.popup()
return True
return False
def __get_path_at_position(self, event):
path_info = self.get_path_at_pos(event.x, event.y)
if path_info:
path, column, cell_relative_x, cell_relative_y = path_info
path_iter = self.__model.get_iter(path)
return path, path_iter, column,
return None, None, None
<>虽然不是C++,但我认为C++应该足够了。事实证明,这两种功能
pop.set_pointing_to(self.get_cell_area(path, col))
pop.set_relative_to(self)
是必需的。您能解决这个问题吗?我想您实际上想要的是
event.x
,而不是event.button.x
。
pop.set_pointing_to(self.get_cell_area(path, col))
pop.set_relative_to(self)