рисовать в окне gtk

У меня есть область рисования gtk, встроенная в рамку gtk, в окне gtk. У меня есть функция обратного вызова, отвечающая на сигнал "draw", который изначально рисует что-то в области рисования. Теперь у меня есть еще одна функция, которая реагирует на сигнал «щелчок», испускаемый несколькими кнопками. Каждый раз, когда нажимается кнопка, я хотел бы нарисовать что-то дополнительно в области рисования. Как это можно сделать? Я попытался создать новую поверхность cairo с областью рисования в качестве цели, но ничего, нарисованного штрихом cairo, не появляется. Благодарность!


person jop    schedule 13.02.2013    source источник


Ответы (1)


Давненько я ничего не делал с Gtk+, но я считаю, что вам нужно вызвать gtk_widget_queue_draw_area() внутри обработчика "click", а затем выполнить отрисовку в ответ на сигнал "draw", который в конечном итоге будет сгенерирован.

person asveikau    schedule 13.02.2013
comment
Спасибо. Я пытался рисовать внутри функции обратного вызова по щелчку, но область рисования очереди работает так же хорошо. - person jop; 13.02.2013
comment
@jop - я думаю, дело в том, что многие графические платформы (включая X) могут рисовать только в ответ на событие или обратный вызов. Таким образом, способ сделать это состоит в том, чтобы щелчок вызывал такое событие. - person asveikau; 13.02.2013