Прокрутка GtkDrawingArea

(Язык C, библиотека GTK)

В моей форме есть виджет GtkDrawingArea, на котором я рисую GdkPixbufs (загруженный из файлов) с помощью Cairo. Я хотел бы получить возможность прокручивать область рисования с помощью полос прокрутки, пока размер окна остается фиксированным (нарисованное изображение больше окна). Как я могу это сделать? Помещение GtkDrawingArea в контейнер ScrolledWindow не сработало (или, может быть, я сделал что-то не так - я новичок в GTK).

Чем проще решение, тем лучше. Ваше здоровье!


person Clueless    schedule 06.01.2012    source источник


Ответы (1)


Некоторые виджеты не имеют возможности прокрутки. GtkDrawingArea - один из них. Вы можете адаптировать эти виджеты, поместив их сначала в GtkViewport, а затем в GtkScrolledWindow In версий до GTK 3.8 _ 4_ - удобный способ сделать это.

В более поздних версиях это выполняется автоматически gtk_container_add.

person ptomato    schedule 06.01.2012
comment
Спасибо за ответ. Другая проблема заключается в том, что размер моей GtkDrawingArea (или, точнее, нарисованного на ней GdkPixbuf?) Изменяется во время работы моего приложения, область для полос прокрутки также должна соответствующим образом изменять свой размер. Как с этим справиться? Вертикальные / горизонтальные настройки (окна просмотра или прокрутки)? - person Clueless; 07.01.2012
comment
Измените запрос размера прокручиваемого окна. Но не забудьте открыть новый вопрос, если у вас есть другой вопрос - так другие люди с той же проблемой смогут его найти и получить помощь. - person ptomato; 07.01.2012