Как предотвратить расширение виджетов на всю коробку (GTK 2)

У меня возникла следующая проблема с GTK2:

Я создал две кнопки с метками внутри горизонтального блока. (Я собираюсь сложить несколько боксов) Однако есть проблема: когда я делаю функции box_pack, они выглядят следующим образом:

gtk_box_pack_start(GTK_BOX(hbox1), button1, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox1), button2, FALSE, FALSE, 0);

Несмотря на то, что для них обоих установлено значение false, кнопки по-прежнему расширяются по вертикали, в результате чего «hbox1» занимает все пространство, оставшееся в родительском поле. Я хочу, чтобы кнопки расширялись только до минимальной высоты, необходимой для правильного отображения метки (как это обычно происходит с вертикальными полями).

Я слышал, что в GTK3 вы можете использовать функции gtk_widget_set_vexpand и gtk_widget_set_hexpand. Однако, похоже, их нет в GTK2, поскольку они распознаются ....

Любое решение для этого? (Не только в этом случае с горизонтальными ячейками, но и с соответствующим случаем в вертикальных ячейках)


person Kelthar    schedule 08.01.2015    source источник
comment
Вы когда-нибудь находили решение этой проблемы?   -  person    schedule 05.06.2017
comment
Это было давно ... Я попытался найти переменную (hbox1), и ее больше не было в моем коде ... Может быть, вы можете попробовать поместить еще один горизонтальный ящик в тот же контейнер, что и этот, и сделать это коробка полностью раскрывается по умолчанию?   -  person Kelthar    schedule 07.06.2017
comment
В итоге я воспользовался выравниванием, спасибо :)   -  person    schedule 07.06.2017


Ответы (2)


Это старый вопрос, но важный. Короче говоря, установите для свойства valign проблемного виджета значение Gtk.Align.CENTER, как сказано в комментарии @ user7537486 к исходному вопросу. Надеюсь, что это решит проблему!

person Blue    schedule 14.03.2021

Если я правильно понял, вам нужен другой hbox, чтобы вести себя как расширитель, примерно так:

|button|spander|

Итак, когда вы расширяетесь:

|button|            spander|

кнопка все еще имеет минимальный размер ....

это то, о чем вы просите?

person Joel    schedule 08.01.2015
comment
Ну да, вроде как. Но кнопка расширяется не по горизонтали (она имеет размер, который должна быть), а по вертикали. Я делаю вид, что в столбце несколько боксов, в каждом по паре кнопок. Но у боксов должен быть (и, следовательно, их кнопки тоже) минимально возможный размер ... - person Kelthar; 11.01.2015