это может выглядеть так, как будто этот вопрос уже появился, и на самом деле он уже был затронут в этой теме Параллельное рисование с GTK и Cairo в Python 3. Но возможно ли другое решение этой проблемы?
Для начала я создал пользовательский интерфейс в PyGtk с моими пользовательскими анимациями, выполняемыми с использованием потоковой передачи (Gtk.threads_enter () и Gtk.threads_leave ()). Работает хорошо и ошибок не выдает. Я также хотел добавить какое-то облако точек и увидел, что Cairo может подойти для этого с предположительно поддержкой Gtk.DrawingArea для его обработки.
Здесь начинается проблема. Поскольку Cairo использует событие рисования и в значительной степени переопределяет его, он рисует поверх моего пользовательского интерфейса изображение, которое я создал для Gtk.DrawingArea. Изображение рисунка cairo поверх пользовательского интерфейса
Таким образом, изображение появляется в DrawingArea и снова рисуется поверх каждого элемента пользовательского интерфейса. Я использовал это руководство https://blog.fossasia.org/creating-animations-in-gtk-with-pycairo-in-susi-linux-app/, чтобы нарисовать каирскую анимацию.
Есть ли способ каким-то образом сделать вызовы рисования из PyGTK для перерисовки элементов пользовательского интерфейса, чтобы они не перерисовывались Каиром?