ScrollWindow 内的 TreeView 打印警告

TreeView inside ScrollWindow prints warning

花了2天时间解决这个问题,所以我觉得这个很有用。

我后面跟着 this GTKmm tutorial,在 Gtk::ScrolledWindow 中添加了 Gtk::TreeView,但是当我添加更多行时,它显示如下消息:

(GUI:25948): Gtk-WARNING **: Allocating size to gtkmm__GtkWindow 0x55ad53e44500 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

如何去除警告?太烦人了。

所以,你 ExampleWindow class 和这个孩子

Gtk::ScrolledWindow m_ScrolledWindow;
Gtk::TreeView m_TreeView;
Glib::RefPtr<Gtk::ListStore> m_refTreeModel;

在您的 ExampleWindow() 构造函数中替换为:

m_ScrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);

与:

m_ScrolledWindow.set_policy(Gtk::POLICY_ALWAYS, Gtk::POLICY_ALWAYS);
m_ScrolledWindow.set_resize_mode(Gtk::ResizeMode::RESIZE_IMMEDIATE);

由于 /usr/lib/libgtk-3.so.0

中的 SIGSEGV,我已将 POLICY_AUTOMATIC 替换为 POLICY_ALWAYS