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

时间:2011-03-22 18:46:47

标签: c++ linux gtk widget gtkmm

我正在使用gtkmm编写应用程序。

我编写了一个简单的widget类,我只想在某些情况下在应用程序的主窗口中显示它。否则,我希望标签“禁用”可见。

为了实现这一点,我将小部件和标签打包到一个VBox中,然后我展示()并隐藏()它们以交换它们。

但是,自定义窗口小部件远远大于标签,因此我需要稍微调整标签大小

我知道我可以使用label.set_size_request(x,y),当我手动输入尺寸时,它可以工作。但我知道,小部件的大小可能有所不同,具体取决于使用的Gtk主题等。

我很乐意将标签 设置为与小部件完全相同的 *。但是,使用widget.get_height()* 不起作用 - 它始终返回1.


我可能会在主窗口的构造函数中执行此操作。

1 个答案:

答案 0 :(得分:7)

我在gtkmm中没有做太多,更多在pygtk中。但是我想从get_width / get_height获取有意义的值,小部件必须实现,这是一个可见的X窗口。我猜你的小部件在窗口构造函数中还不可见。

我建议您使用gtk.Notebook,隐藏其标签。然后gtk.Notebook将控制标签和自定义小部件的大小。