实现自定义 Gtkmm 小部件:我应该在虚拟 on_* 函数中返回啥?

Posted

技术标签:

【中文标题】实现自定义 Gtkmm 小部件:我应该在虚拟 on_* 函数中返回啥?【英文标题】:Implementing custom Gtkmm widget: what should I return in the virtual on_* functions?实现自定义 Gtkmm 小部件:我应该在虚拟 on_* 函数中返回什么? 【发布时间】:2012-01-24 12:33:49 【问题描述】:

当覆盖 Gtk::Widget 的 virtual bool Gtk::Widget::on_draw(const Cairo::RefPtr<Cairo::Context>& cr) 时我应该返回什么?文档根本没有说明这一点。

【问题讨论】:

【参考方案1】:

确实,C documentation 也没有说什么。您应该在 bugzilla.gnome.org 上将此疏忽报告为错误。

也许它和 GTK 中的其他事件信号一样?也就是说,返回TRUE 以停止调用其他处理程序,FALSE 以进一步传播事件?尽管它不是事件信号,但它在 GTK 2 中的前身是,也许是为了向后兼容?例如,快速浏览一下GtkButton 的源代码会发现它只是返回FALSE

【讨论】:

我也试图找到他们说的地方。我认为在 java-gnome 文档中,他们说 X 返回 true,Y 返回 false,但我在 c++ 或 c 绑定中找不到。他们真的应该将此添加到文档中。 报告一个错误,然后他们可能会。

以上是关于实现自定义 Gtkmm 小部件:我应该在虚拟 on_* 函数中返回啥?的主要内容,如果未能解决你的问题,请参考以下文章

GTKMM/C++11:如何从其他小部件中创建自定义复合小部件?

无法获取小部件的高度/宽度 - gtkmm

gtkmm 获取小部件的大小

GTKmm - 无法将固定大小设置为 Gtk::Scale 小部件

如何在 gtkmm 中隐藏窗格小部件的边框

图像小部件的 Gtkmm 点击信号