2010-02-16 2 views
0

Я пытаюсь исправить размер виджета в GTK +, в частности, используя Gtk2hs с Haskell.Фиксация размера виджета GTK?

Я нарисовал изображение в DrawingArea, и я хотел бы указать точный размер этой области рисования. Я не хочу, чтобы другие виджеты или пользователь делали этот виджет больше или меньше. Это возможно?

Примечание. Я использую версию ghc 6.10.4 под Ubuntu 9.10. Версия Gtk2hs 0.10.1.

ответ

3

Вы можете вызвать gtk_widget_set_size_request(), чтобы заставить виджет запрашивать фиксированную высоту и ширину. Вам нужно будет определить эквивалент Haskell.

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

+0

Спасибо. Это было на полпути, чтобы решить мою проблему. Мне также нужно было поместить его в панель «Исправлено» (в отличие от HBox или VBox, скажем), чтобы предотвратить изменение виджета в приложении DrawingArea. – Necrototem

1

В Gtk2Hs функционировать, чтобы установить размер виджета:

widgetSetSizeRequest 
    :: WidgetClass self  
    => self  
    -> Int  
    -> Int  
    -> IO() 

с аргументами:

  1. виджет
  2. Ширина виджета
  3. высоту виджета
Смежные вопросы