Суть таски - есть десктопный виджет, нужно на нем рисовать каждые .05 сек.
Я никогда с GTK не работал, за пару часов немного разобрался и сделал прозрачное окно и даже немного понял, как рисовать. Но проблема в том, что я юзаю эвент «draw», который отрабатывает онли 1 раз. А как сделать «как надо» без понятия. (Гугление дальше не помогает)
Сорс
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
import signal, os
class Widget(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, skip_pager_hint=True, skip_taskbar_hint=True)
self.set_wmclass("sildesktopwidget","sildesktopwidget")
self.set_type_hint(Gdk.WindowTypeHint.DESKTOP)
self.set_size_request(600,400)
self.set_keep_below(True)
screen = self.get_screen()
rgba = screen.get_rgba_visual()
self.set_visual(rgba)
self.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(1,1,1,1))
self.drawArea = Gtk.DrawingArea()
self.drawArea.connect('draw', draw_cb)
self.add(self.drawArea)
self.show_all()
self.move(300,300)
def draw_cb(widget, cr):
print "test"
cr.set_source_rgba(0,0.1,0.2,0.5)
cr.rectangle(50,75,100,100)
cr.fill()
if __name__ == '__main__':
window = Widget()
signal.signal(signal.SIGINT, signal.SIG_DFL)
Gtk.main()