Вопрос к GTK-гуру - подскажите, как ограничить размер ComboBoxEntry по ширине? Лазанье по reference manual ничего толкового не дало, он упорно остаётся очень широким (
gtk_combo_box_entry_new ()
GtkWidget* gtk_combo_box_entry_new (void);
Creates a new GtkComboBoxEntry which has a GtkEntry as child. After construction, you should set a model using gtk_combo_box_set_model() and a text column using gtk_combo_box_entry_set_text_column().
---------
gtk_entry_set_max_length ()
void gtk_entry_set_max_length (GtkEntry *entry,
gint max);
Sets the maximum allowed length of the contents of the widget. If the current contents are longer than the given length, then they will be truncated to fit.
Он одинаково безобразен для всех виджетов. GTK+ использует модель "минимальный размер + расширение", которая почти намертво зашита в сию либу.
Я обычно решаю эту проблему путем помещения извращаемого виджета в специальный контейнер (например, GtkAlignment), специальность которого заключается в size-request. В результате этого размер извращаемого виджета определяется значением, которое я передам во время вызова size-request. Но это, вообщем-то, хак, и может аукнутся весьма веселыми последствиями.
У меня на это имеется другое мнение... такое автоматическое расширение виджетов (т.е. нет жестких размеров) позволяет не мучасться с ресайзом виджетов при трансформации окна.
> такое автоматическое расширение виджетов (т.е. нет жестких размеров) позволяет не мучасться с ресайзом виджетов при трансформации окна
Я бы сказал не "не мучаться", а "забить". Вы когда-нибудь видели окна с казалось бы считанными элементами, но размером так 1400x600 пикселов? И это называется забить.
Порой нужна модель "предпочтительный размер ± изменение" или "максимальный размер - сужение". Пример - то самое ComboBoxEntry, которые незачем расширять больше информации в нем, а вот сужать хотелось бы.