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

raf*_*lak 5 c++ linux gtk widget gtkmm

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

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

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

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

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

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


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

lio*_*ori 7

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

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