2017-12-01 8 views
0

Ich schreibe gerade ein Python-Programm unter Linux mit der Bibliothek pygtk. Ich habe es bereits geschafft, den Windows-Hintergrund transparent zu machen und alle Klicks an die Fenster unter meinem Fenster zu übergeben. So, jetzt habe ich ein unsichtbares Fenster, das nichts tun würde, da Klick- und Schlüsselereignisse an das Fenster unten weitergeleitet werden.Wie zeichne Linien aus sich wiederholenden Bildern in (Py) GTK?

Jetzt möchte ich ein externes Programm/Gerät verwenden, das meinem Programm sagt, wo Linien zu zeichnen sind. Das habe ich bereits geschafft.

Aber was ist der richtige und effizienteste Weg, um eine Linie auf dem Bildschirm/Fenster aus sich wiederholenden Einzelbildern zu zeichnen. Nehmen wir an, ich habe einen Teil einer Laserlinie (8x8 Pixel) und jetzt möchte ich eine Linie von den Koordinaten (0,0) bis (20,12) zeichnen und dann vielleicht zu (22, 15), dann zu (25, 15) und so weiter. Der Benutzer wird es malen.

Meine letzte Frage ist: Wie zeichne ich eine Linie mit einem kleinen wiederholten single png Bild mit vielen Koordinaten zeichnet der Benutzer auf das Fenster (die wie der Bildschirm aussieht, weil der Hintergrund unsichtbar ist)?

+0

Als Neben Hinweis: Verwenden Sie pygtk nicht. Es ist die alte statische Bindung, die für GTK + 2 gedacht ist. Aber es ist 2017 und GTK + 3 ist seit Jahren dort. Bitte lesen Sie das Tutorial python + GTK + 3: https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html – liberforce

+0

Was die Zeichnung betrifft, sollten Sie das mit cairo tun: https: //cairographics.org – liberforce

Antwort

0

Werfen Sie einen Blick auf GooCanvas. Diese Bibliothek (basierend auf den Zeichenwerkzeugen von Gdk/Gtk - Cairo) kümmert sich um viele Details beim Zeichnen der Objekte und kümmert sich auch um das automatische Neuzeichnen. Sie können Linien mit Texturen, Bildern usw. zeichnen. Außerdem können Sie Handler für Ereignisse jeder Ebene und jedes gezeichnete Element definieren.

Das Ergebnis ist ein Widget, das überall in der GUI gepackt werden kann. Suchen Sie nicht nach GooCanvas 2.0.x - nicht nach dem alten 1.x Stamm. Es kann in Python durch Introspektion verwendet werden.

Sie können die Fill-Farbe zu einem pixbuf gesetzt (nicht direkt ein PNG, aber leicht umsetzbaren)

Verwandte Themen