2011-03-22 62 views
4

我正在写使用gtkmm的应用程序。无法获取一个小部件的高度/宽度 - gtkmm的

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

为了实现我将Widget和标签都打包到一个VBox中,我显示()和隐藏()它们以便交换它们。

但是,自定义小部件远远大于标签,所以我需要调整标签的位置

我知道我可以使用label.set_size_request(x,y),并且它可以工作,当我手动键入尺寸时。但我知道,该控件可以在大小上有点不同,这取决于GTK主题一个用途等

我很想设置标签尺寸完全相同 *作为窗口小部件具有。但是,使用widget.get_height()* 不起作用- 它总是返回1


也许一个线索将是我做到这一点从主窗口的构造函数中。

回答

7

我没有做过的gtkmm的多少,更PyGTK的。但我认为要从get_width/get_height获得有意义的值,一个窗口小部件必须是实现的,这是一个可视的X窗口。我猜你的小部件在窗口构造函数中还不可见。

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

+0

哦,谢谢,笔记本招是酷。 – rafalcieslak 2011-03-23 19:31:37