GTK# - проблема с наложением компонентов при изменении размера
У меня есть панель, содержащая форму (такие элементы, как метки и текстовые поля в таблице) и 3 кнопки (в hbuttonbox) в правом нижнем углу. Если я укоротю панель, перетаскивая нижнюю границу вверх, вместе с ней появятся 3 кнопки, и они будут лежать поверх других компонентов формы, создавая грязную графику. Я бы хотел, чтобы размер панели не менялся меньше, чем нижний край последнего компонента внутри нее. Из-за ограничений работодателя я не могу показать скриншот GUI. Я постараюсь сделать любые уточнения, которые просят.
Вероятно, это как-то связано с некоторыми настройками изменения размера или общего размера компонентов, но вариантов так много, что я не уверен, с чего начать.
Любые идеи для легкого решения этого без погружения в сложное гнездо компонентов? Если нет, есть идеи о том, где я должен начать возиться с настройками?
Спасибо!
ОБНОВЛЕНИЕ: Все содержится в VBox с 3 ячейками. Элементы в ячейках (сверху вниз): Таблица, ScrolledWindow, HButtonBox. При изменении размера нижний край ScrolledWindow также перемещается (изменяет размеры) вместе с нижним краем панели, пока нижняя часть панели не окажется над всем ScrolledWindow. Затем кнопки продолжают двигаться вверх, оставаясь относительно нижнего края панели.
2 ответа
Я закончил тем, что добавил Запрос Высоты к контейнеру, только немного дольше, чем часть прокручиваемого окна. Теперь это перестает изменять размеры, чтобы нижние кнопки перекрывали компоненты над ним. Проблема (до исправления) показана ниже:
Под формой вы подразумеваете, что используете Gtk.Fixed
содержать вашу таблицу и кнопку? Тогда, вероятно, именно это и происходит - вы должны использовать vbox и hbox для вашего макета. Они будут правильно изменять размер. Фиксированные макеты предназначены только для исключительных случаев.
РЕДАКТИРОВАТЬ:
Другие предложения:
- Возможно,
HButtonBox
имеет тип пакета "конец" вместо "начало"? - Вы можете попробовать поиграть со свойствами упаковки 'fill' и 'expand' дочерних элементов VBox.