GTK # - проблема с наложением компонентов при изменении размера - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть панель, содержащая форму (такие элементы, как метки и текстовые поля в таблице) и 3 кнопки (в hbuttonbox) в правом нижнем углу.Если я укоротю панель, перетаскивая нижнюю границу вверх, вместе с ней появятся 3 кнопки, которые будут лежать поверх других компонентов формы, что приведет к грязной графике.Я бы хотел, чтобы размер панели не менялся меньше, чем нижний край последнего компонента внутри нее.Из-за ограничений работодателя я не могу показать скриншот GUI.Я постараюсь сделать любые уточняющие вопросы.

Возможно, это связано с некоторыми настройками изменения размера или общего размера компонентов, но есть так много вариантов, что я не уверен, с чего начать.

Есть идеи, как легко это исправить, не углубляясь в сложное гнездо компонентов?Если нет, есть идеи о том, с чего мне начинать возиться с настройками?

Спасибо!

ОБНОВЛЕНИЕ: Все содержится в VBox с 3 ячейками.Элементы в ячейках (сверху вниз): Таблица, ScrolledWindow, HButtonBox.Нижний край ScrolledWindow также перемещается (изменяет размеры) вместе с нижним краем панели при изменении размера, пока нижняя часть панели не окажется над всем ScrolledWindow.Затем кнопки продолжают двигаться вверх, оставаясь относительно нижнего края панели.

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Я закончил тем, что добавил запрос высоты к контейнеру, чуть длиннее, чем часть прокручиваемого окна.Теперь это перестает изменять размеры, чтобы нижние кнопки перекрывали компоненты над ним.Проблема (до исправления) показана ниже:

Regular Sized Panel

Resized with overlap

0 голосов
/ 13 апреля 2011

Под формой подразумевается, что вы используете Gtk.Fixed для хранения таблицы и кнопки?Тогда, вероятно, именно это и происходит - вы должны использовать vbox и hbox для вашего макета.Они будут правильно изменять размер.Фиксированные макеты предназначены только для исключительных случаев.

РЕДАКТИРОВАТЬ :

Другие предложения:

  • Возможно, HButtonBox имеет тип упаковки 'конец'вместо' start '?
  • Вы можете попробовать поиграть со свойствами упаковки' fill 'и' expand 'дочерних элементов VBox.
...