我一直在努力解决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。我抛出的任何东西都不会阻止它调整它的父元素。
如何阻止父/窗口调整大小并强制这些元素具有特定宽度?
答案 0 :(得分:0)
我没有找到告诉父元素不要调整大小的方法,但我确实找到了一种方法来阻止它调整大小。
关键是要打电话
widget.show_all();
在向其添加小部件之前。然后在显示窗口后,在函数体调用
container.show_all();
在功能结束时。
这可能不是'正确'的解决方案,但它暂时对我有用。