Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GTKMM:Gtk树视图单元格中的GtkPopOver_C++_Gtkmm - Fatal编程技术网

C++ GTKMM:Gtk树视图单元格中的GtkPopOver

C++ GTKMM:Gtk树视图单元格中的GtkPopOver,c++,gtkmm,C++,Gtkmm,我怎么能把一个GtkPopOver放在Gtk TreeView的一个单元格中。当我点击单元格时,我需要弹出窗口。 在GTKMM中,我找不到比将GtkTreeView的一个单元格与一个GtkPopover关联起来更好的例子 谢谢。经历过类似的情况后,我能够用(python简化版)解决这个问题: 我已经解决了这个问题,下面是我使用的代码的简化版本: class Table(Gtk.TreeView): # Gtk stuff ... @GtkTemplate.Callback

我怎么能把一个GtkPopOver放在Gtk TreeView的一个单元格中。当我点击单元格时,我需要弹出窗口。 在GTKMM中,我找不到比将GtkTreeView的一个单元格与一个GtkPopover关联起来更好的例子


谢谢。

经历过类似的情况后,我能够用(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)