Можно ли получить доступ и изменить контекст GtkDrawingArea
за пределами его draw_callback
? Если да, я был бы очень рад, если бы вы представили короткий пример (на любом языке) или указать мне, где я должен смотреть. Все примеры, которые я нашел до сих пор, рисуют внутри обратного вызова, поэтому я допрашиваю эту возможность.Доступ к каирскому контексту Вне GtkDrawingArea draw_callback
ответ
В GTK + 2 это было возможно с помощью взаимодействия GDK и Cairo, чтобы получить контекст Каира из GdkWindow. В GTK + 3, что, скорее всего, о чем вы спрашиваете, вы все равно можете сделать это с помощью this и this.
Это звучит как классическое проявление проблемы XY. С каирским взаимодействием GTK + 3 вы можете теперь just queue a draw signal for only the specific clip region you want. Просто напишите обратный вызов draw в целом и нарисуйте только то, что необходимо в обрезанной области.
Я надеюсь, что документов будет достаточно, но если нет, сообщите мне. У меня просто нет времени, чтобы подготовить пример в этот момент.
Ответ на этот вопрос немного странный, но я столкнулся с подобной проблемой, так что вот мои два цента за задним числом.
Обычно вы не хотите выдавать команды Каира контексту DrawingArea вне обратного вызова ::draw
. В то же время вы обычно хотите нарисовать материал за пределами обработчика ::draw
(например, длительные вычисления чертежей). Если это ваш случай, тогда вы должны создать дополнительный каирский контекст (внеэкранный) и нарисовать его (возможно, в другом потоке, если вы делаете что-то долгое время). Затем внутри обработчика ::draw
с использованием этого внеэкранного контекста в качестве поверхности (надеюсь, моя терминология правильна в отношении контекста, поверхности, живописи, рисунка, но вы получаете эту идею).
Хороший пример того, что есть в документации GTK + на custom drawing, посмотрите на функцию draw_cb
.
- 1. Доступ к контексту prestashop
- 2. Доступ к контексту
- 3. Доступ к весеннему контексту
- 4. Реакция: доступ к контексту в классе ES6
- 5. Доступ к внешнему контексту в lambdas
- 6. Доступ к моему контексту приложения из QuartzJob
- 7. Доступ к корневому контексту в шаблоне Handlebar.js
- 8. Доступ к контексту Oozie из java-действия
- 9. Доступ к контексту приложения из класса BundleContextAware
- 10. Доступ к контексту привязки в конвертере
- 11. Доступ к контексту android в приложении ndk
- 12. Как получить доступ к контексту вызова функции?
- 13. Как получить доступ к контексту сессии tomcat?
- 14. Доступ к текущему контексту в PersistentConnection
- 15. Как получить доступ к контексту в перехватчике?
- 16. Доступ к контексту весны в testng's @BeforeTest
- 17. Sitecore: Доступ к контексту из asmx webservice
- 18. Доступ к родительскому контексту в Polymer.dart
- 19. Доступ к контексту внутри Up в DbMigration
- 20. Доступ к контексту связки OSGI в приложении
- 21. Доступ к контексту данных Button при нажатии
- 22. Доступ непосредственно к контексту контекста GDI
- 23. Доступ к контексту скорости в MethodExceptionEventHandler
- 24. Пользовательский сериализационный пользовательский доступ к контексту
- 25. скроллинг GtkDrawingArea
- 26. Gtk2 GtkDrawingArea Cairo настойчивость чертежа при прокрутке вне диапазона
- 27. Доступ к методу вне проекта
- 28. Доступ к объекту вне сферы
- 29. Доступ к переменной вне класса
- 30. Доступ к элементу вне цели