很多人认为需要为TreeView实现右键单击上下文菜单,因此我们在这里说明如何做到这个以节省你的时间。其与普通的上下文菜单只有一两点不同,如菜单章节所述。
要检测鼠标右键的点击,你需要处理button_press_event信号,并准确的检查按下了哪个按钮。因为TreeView通常会处理这个信号,所以你需要使用connect_notify()或connect(slot, /* after= */ false)在TreeView的派生类中覆盖默认信号处理函数。你可能还想在执行任何其他操作之前先调用默认信号处理函数,以便右键时先选择该行。
Popup Context Menu示例中对此进行了演示。