修改:更正后的代码。
ListBox listBox = new ListBox ();
ListBoxRow row = new ListBoxRow ();
row.add (new Label ("Test row"));
row.button_release_event.connect ((event) => {
if (event.button == 3) {
debug ("Right button clicked.\n");
}
return false;
});
listBox.add (row);
不起作用。什么都不打印。但另一个工作正常
ListBox listBox = new ListBox ();
ListBoxRow row = new ListBoxRow ();
row.add (new CheckButton.with_label ("Test row"));
row.button_release_event.connect ((event) => {
if (event.button == 3) {
debug ("Right button clicked.\n");
}
return false;
});
listBox.add (row);
打印调试消息。是否可以在任何区域处理ListBoxRow上的右键单击,无论其子级是什么?
答案 0 :(得分:2)
解决此问题的一个选项是使用Gtk.EventBox作为每个Gtk.ListBoxRow的直接子项,然后使用EventBox作为行内容的容器:
if( i === (data.query.embeddedin.length -1) ) {