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

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

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

为了实现这个function,我把Widget和标签打包成一个VBox,并且显示()和隐藏()它们以便交换它们。

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

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

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


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

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

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