防止GTK元素调整父级的大小?

时间:2016-10-27 05:20:29

标签: gtk rust

我一直在努力解决Gtk的问题。 我有一个带有ListBoxRows的ListBox元素,里面有ListBoxLabels。

let list_item = gtk::ListBoxRow::new();
list_item.set_size_request(600, 200);
list_item.set_resize_mode(gtk::ResizeMode::Parent);

let content_label = gtk::Label::new_with_mnemonic(rant["text"].as_string());
// content_label.set_halign(gtk::Align::Start);
// content_label.set_valign(gtk::Align::Start);
content_label.set_justify(gtk::Justification::Left);
content_label.set_line_wrap(true);
content_label.set_size_request(200, 200);

list_item.add(&content_label);

container.insert(&list_item, -1);

然而,当应用程序运行时,标签正在调整其所有父元素的大小。它忽略任何size_request,line_wrap,Justification。我抛出的任何东西都不会阻止它调整它的父元素。

如何阻止父/窗口调整大小并强制这些元素具有特定宽度?

1 个答案:

答案 0 :(得分:0)

我没有找到告诉父元素不要调整大小的方法,但我确实找到了一种方法来阻止它调整大小。

关键是要打电话

widget.show_all();

在向其添加小部件之前。然后在显示窗口后,在函数体调用

container.show_all();

在功能结束时。

这可能不是'正确'的解决方案,但它暂时对我有用。