5

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

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

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

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

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

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


也许一个线索是我在主窗口的构造函数中执行此操作。

4

1 回答 1

7

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

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

于 2011-03-22T19:22:09.383 回答