2017-05-16 55 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()被明確地使用)。

所以你可以嘗試在標籤本身上設置一個更大的最小寬度約束,看看它是否會改變任何東西。