Как установить минимальный и текущий размер ПРАВОЙ панели в HPaned в Gtk? - PullRequest
0 голосов
/ 17 октября 2011

Я пытаюсь сделать окно приложения с подвижным разделителем между левой и правой панелью. На левой панели у меня есть ListView. На правой панели у меня есть VBox с некоторыми ярлыками, записями и т. Д. Я добавил контейнер HPaned, добавил ListView на его левую панель и VBox на его правую панель. Довольно просто.

И тут возникает проблема:

  1. Мне нужно сделать правую панель, чтобы сохранить ее размер, когда пользователь изменяет размер окна. Хотя, похоже, единственное поддерживаемое поведение - это когда левая панель делает это.

  2. Мне нужно установить минимальную ширину для правой панели, чтобы она не была слишком маленькой, если пользователь попытается изменить ее размер или, из-за первой проблемы, просто изменит размер окна до меньшего размера. Я не нашел никакого способа сделать это. На самом деле, я могу использовать Window.SetGeometryHints (), чтобы добавить минимальное ограничение для VBox на правой панели, но это единственный способ сделать это? Все эти ограничения делают окно дрожащим, когда я его изменяю.

1 Ответ

0 голосов
/ 18 октября 2011

Хорошо, после нескольких экспериментов я нашел решение для первой проблемы. Достаточно вызвать Pack1 (widget, true, true) для дочернего элемента левой панели и Pack2 (widget, false, false) для дочернего элемента правой панели.

Решением для второй проблемы было бы добавление ограничения MinSize для дочернего элемента правой панели с помощью Window.SetGeometryHints (), но кажется, что окно становится неуменьшаемым пользователем.

Если кто-то знает правильный способ решения второй проблемы, ваша помощь очень ценится.

...