Frage

Ich versuche, ein Bild anzuzeigen, dass ich von einem pixbuf laden (von Daten im Speicher) und das Bild wird jedes Mal aktualisiert (wie die pixbuf auch mit der Zeit ändert). Meine Frage ist, dass, da das Fenster nur das Bild enthält (die in regelmäßigen Abständen aktualisiert wird), muss ich eine gtk ziehbar oder einen Zeichenbereich für das? oder kann ich einfach das Bild im Fenster angezeigt werden? Eine andere Möglichkeit wäre kairo zu verwenden. Kann jemand bitte einen guten Weg vorschlagen, es zu tun?

War es hilfreich?

Lösung

Laden Sie die Datei in einen pixbuf gibt es einen new_from_file Konstruktor oder etwas dafür.

Ja, eine DrawingArea erstellen und kleben Sie es in einer Box oder etwas irgendwo.

Als nächstes erhält die DrawingArea übergeordneten Fenster (es wird ein Verfahren wie get_window oder etwas für das sein). Dies wird Ihr Drawable.

Erstellen Sie eine GC (Grafikkontext.) - Sie brauchen nicht in es keine besonderen Werte

Schließen Sie den DrawingArea auf ein Ereignis aus. Für den Fall, aussetzen, haben es die draw_pixbuf Methode auf dem Auslosungs mit Ihrem pixbuf mit dem GC rufen Sie erstellt haben.

Rufen Sie diese gleiche draw_pixbuf Methode, wenn Sie die pixbuf irgendwie aktualisieren.

Sie können stattdessen auch mit einem pixmap betrachten wollen, wenn Sie es nicht aus einer Datei geladen werden und beabsichtigen, sie zu zeichnen. Ein pixmap selbst ist ein Auslosungs, so dass Sie direkt Rechtecke und die Dinge auf sie zurückgreifen. Der einzige wirkliche Unterschied darin auf Ihrem DrawingArea Anzeige ist, dass Sie die draw_drawable Methode anstelle von draw_pixbuf auf den Auslosungs anrufen müssen.

Beachten Sie, dass ich aus diesem Speicher schreibe Perl / Gtk2 zu verwenden, und es kann nicht sauber abzubilden welcher Sprache Sie verwenden.

Andere Tipps

Ein GtkImage wird gut funktionieren und einfacher sein als alle Dinge, die Sie aufgelistet; -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top