【问题标题】:Retrieving Gtk::Widget's relative position: get_allocation() doesn't work检索 Gtk::Widget 的相对位置:get_allocation() 不起作用
【发布时间】:2010-03-21 16:29:30
【问题描述】:

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

我必须注意,这发生在 Gtk::Table 对象实际暴露和渲染之前。对 show_all_children()check_resize() 的调用(我希望重新计算子小部件几何图形)无济于事。

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

【问题讨论】:

  • 画好后还能用吗?
  • 确实如此。但是生成Gtk::Table 对象的函数有额外的上下文,例如重新实现on_expose_event() 并重新扫描所有子对象以获取和处理此信息会很麻烦。

标签: c++ gtk gtkmm


【解决方案1】:

您可以尝试在顶级 GtkTable 上调用 @987654321@

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

【讨论】:

  • 谢谢,但它不起作用。此外,Gtk::Widget::realize() 在 C++ API 中是受类保护的。所以我想我将不得不推迟工作,直到 expose 事件交付。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多