PyGTK - Fenster mit Hintergrundbild

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi!

Ich möchte in einem Fenster (gtk.Window) ein Hintergrundbild anzeigen. Die Buttons und andere Schaltflächen sollen über diesem Bild ganz normal angezeigt werden.

Kann man ein Fenster oder einen Button mit einem Bild ausstatten? Kann man evt. auch runde Steuerelemente erstellen?

Wenn es mit gtk.Window() nicht geht. Gibt es eine Alternative?

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ProgChild
User
Beiträge: 210
Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:

Wenn du deine Anwendung "Stylen" willst, dann würde ich dir ehr empfehlen, dir eine Resourcedatei zu schreiben, die die Farben und Hintergrundbilder für dich setzt. Die musst du dann nur noch laden...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

ProgChild hat geschrieben:Wenn du deine Anwendung "Stylen" willst, dann würde ich dir ehr empfehlen, dir eine Resourcedatei zu schreiben, die die Farben und Hintergrundbilder für dich setzt. Die musst du dann nur noch laden...
Hi ProgChild!
Ich weiß nicht, ob das nicht zu viel Aufwand für meinen Verwendungszweck ist. Ich möchte eine Programmpräsentations-CD erstellen. Dafür brauche ich nur ein Hintergrundbild und ein paar kleine Bilder, die als Schaltflächen dienen.

Es soll beim Einlegen der CD ein (Vollbild-)Fenster mit schönem Hintergrundbild und ein paar Buttons mit Bildern der zu präsentierenden Themen angezeigt werden. Bei einem Klick auf einen der Buttons wird dann eine schöne Flash-Animation angezeigt, die mein Programm für die jeweilige Branche vorstellt.

Da ich mir kein Profi-Programm dafür leisten kann und es auch nicht in einem Browser laufen soll, dachte ich --> GTK und Py2Exe sollte dafür auch genügen. :-)

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi!

Ich habe soeben etwas gefunden -- werde es mal ausprobieren und hier posten, ob es funktioniert hat.

http://www.async.com.br/faq/pygtk/index ... 08.013.htp

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Runde Widgets müsstest du vermutlich selbst schreiben aber ein Hintergrundbild kannst du ohne weitere Probleme haben:

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: latin-1 -*- 

import gtk
back = 'soho-noimage.png'
pixbuf = gtk.gdk.pixbuf_new_from_file(back)
pixmap = pixbuf.render_pixmap_and_mask()[0]

win = gtk.Window()
win.set_app_paintable(True)
win.realize()
win.window.set_back_pixmap(pixmap, False)

win.connect('delete_event', gtk.main_quit)
win.show_all()

gtk.main()
Mit Hilfe der Mailingliste geschrieben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Leonidas hat geschrieben:Runde Widgets müsstest du vermutlich selbst schreiben aber ein Hintergrundbild kannst du ohne weitere Probleme haben:
Hi!

Ist ja toll, was man so alles mit GTK machen kann :-)
Das mit dem Hintergrundbild funktioniert super und (falls ich es wirklich brauchen sollte -- bin noch nicht sicher) glaube ich, dass ich mit shape_combine_mask und einem runden Bild sicher auch einen runden Button hin bekommen werde.

Danke,
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten