У меня есть область рисования gtk, встроенная в рамку gtk, в окне gtk. У меня есть функция обратного вызова, отвечающая на сигнал "draw", который изначально рисует что-то в области рисования. Теперь у меня есть еще одна функция, которая реагирует на сигнал «щелчок», испускаемый несколькими кнопками. Каждый раз, когда нажимается кнопка, я хотел бы нарисовать что-то дополнительно в области рисования. Как это можно сделать? Я попытался создать новую поверхность cairo с областью рисования в качестве цели, но ничего, нарисованного штрихом cairo, не появляется. Благодарность!
рисовать в окне gtk
Ответы (1)
Давненько я ничего не делал с Gtk+, но я считаю, что вам нужно вызвать gtk_widget_queue_draw_area()
внутри обработчика "click"
, а затем выполнить отрисовку в ответ на сигнал "draw
", который в конечном итоге будет сгенерирован.
person
asveikau
schedule
13.02.2013
Спасибо. Я пытался рисовать внутри функции обратного вызова по щелчку, но область рисования очереди работает так же хорошо.
- person jop; 13.02.2013
@jop - я думаю, дело в том, что многие графические платформы (включая X) могут рисовать только в ответ на событие или обратный вызов. Таким образом, способ сделать это состоит в том, чтобы щелчок вызывал такое событие.
- person asveikau; 13.02.2013