c++ - 检索 Gtk::Widget 的相对位置:get_allocation() 不起作用

标签 c++ gtk gtkmm

我需要检索 Gtk::Widget 相对于其父级 Gtk::Table 的位置。大多数来源(例如 http://library.gnome.org/devel/gtk-faq/stable/x642.html)说需要调用 Gtk::Widget::get_allocation()。但是,返回的 Gtk::Allocation 对象始终包含 x = -1y = -1width = 1高度 = 1

我必须注意,这发生在 Gtk::Table 对象实际暴露和呈现之前。对 show_all_children()check_resize() 的调用(我希望重新计算子小部件几何形状)没有帮助。

我做错了什么?提前致谢。

最佳答案

您可以尝试调用 <a href="http://library.gnome.org/devel/gtk/stable/GtkWidget.html#gtk-widget-realize" rel="noreferrer noopener nofollow">gtk_widget_realize()</a>在顶层 GtkTable 上。

如我链接的文档中所建议的,另一种方法是将处理程序附加到 GtkWidget::expose-event信号。

关于c++ - 检索 Gtk::Widget 的相对位置:get_allocation() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487786/

相关文章:

c++ - 查找通过引用传递的容器的尺寸

ruby - 我应该为轻量级 IDE 使用什么设计模式?

c++ - 如何知道 Gtk::ComboBoxText 是否弹出

c++ - 使用 Cairo 绘图时有什么方法可以加快/减少 CPU 使用率?

c++ - 指针立即为 0x0

c++ - 绕过 C++ 中的复制语义

c++ - C/C++ 优化检查以查看之前是否已经运行过函数

c++ - 在 Ruby 中调用 C++ 共享库

c# - 如何从 GTK 中的 TreeView 中删除多行#

c - 使用 Glade(和 C)的 GTK+ 中消息对话框的信号处理程序