У меня есть макет GTK с виджетом слева от HBox, определяющим максимальную высоту, которую я хочу, и VBox справа, содержащий три кнопки, каждая из которых содержит только изображение и не содержит текста. Изображения представляют собой стандартные иконки GTK, поэтому они имеют стандартный тип хранилища.
При использовании упаковки expand=True, fill=True кнопки без изображений имеют именно ту высоту, которую я хочу - некоторую произвольную маленькую ширину и 1/3 высоты левой половины HBox. Однако с изображением они либо слишком высокие - 3 * ICON_SIZE_MENU слишком высокие во многих темах - либо если я принудительно запрашиваю высоту кнопки, они обрезаются. Я бы предпочел масштабировать их до размера родительской кнопки.
Должен ли я создавать свои собственные пиксбуфы для каждой из используемых мной стандартных иконок (и регенерировать их, если размер изменяется)? Или GTK может автоматически изменять размер изображения, чтобы оно соответствовало кнопке, а не наоборот? Поскольку изображения всего на несколько пикселей не соответствуют каждой теме, которую я пробовал, есть ли способ просто отключить отсечение кнопки?
Это приложение написано на Python с использованием PyGTK, но приветствуются решения на любом языке.
(Я пытался просто сделать его типом хранения имени значка, но один из значков — REVERT_TO_SAVED, который превратился в сломанное стоковое изображение, когда я попытался установить для него определенную высоту в пикселях. фиксированная высота пикселя.)