2017-05-16 19 views
3
auto widget=gtk_label_new(text); 
m_handle=GTK_LABEL(widget); 
gtk_label_set_line_wrap(m_handle,TRUE); 
gtk_label_set_max_width_chars(m_handle,80); 
gtk_widget_set_size_request(GTK_WIDGET(m_handle),-1,1); 

而且,标签包装,但GTK认为小部件在每个单词后需要高度等于换行符。不,我无法手动缩小窗口。如何恢复其身高?包裹GtkLabel巨大的高度

A huge window

回答

4

虽然我不是在所有Gtk3编程经验,我已经看到了QT5一个非常类似的现象。

我认为会发生的事情是,Gtk3会将标签的最小高度设置为缠绕到最小宽度时的高度。我的意思是标签本身的最小宽度,所以即使窗口不能变小,如果窗口中还有其他一些窗口小部件,标签也可能有可能。

这种机制被描述如下:https://developer.gnome.org/gtk3/stable/GtkWidget.html#geometry-management

注特别:

为最小宽度的最小高度通常是用来设置在顶层的 最小尺寸约束(除非 gtk_window_set_geometry_hints()被明确地使用)。

所以你可以尝试在标签本身上设置一个更大的最小宽度约束,看看它是否会改变任何东西。