Seite 1 von 1

Bilder als Buttons mit pyGTK

Verfasst: Mittwoch 24. Oktober 2007, 22:06
von Beni
Hallo,

für eine Software möchte ich eine GUI gestalten, die etwas mehr "eyecandy" ist als der Standard-Look von GTK. Ich möchte Bilder als Buttons in mein Programm integrieren. Was ist hierfür die einfachte Möglichkeit?

Ich habe es bisher hinbekommen, dass ein gtk.Image in einen Button gepackt wird. Allerdings wird dann die Standard-Farbe des GTK-Themes benutzt, um den Button "aufzufüllen". Das sieht dann so aus:

Bild

Was ich aber möchte ist, dass wirklich nur das Bild angezeigt wird (also quasi, dass um den "Kreis" herum das Hintergrundbild sichtbar ist).
Gibt es eine Möglichkeit, das hinzubekommen? Oder gibt es gar eine ganz andere Möglichkeit, Bilder in ein Fenster einzufügen und eine Methode aufzurufen, sobald eines davon angeklickt wird?

Vielen Dank & viele Grüße!

Beni

Re: Bilder als Buttons mit pyGTK

Verfasst: Mittwoch 24. Oktober 2007, 22:13
von Leonidas
Beni hat geschrieben:für eine Software möchte ich eine GUI gestalten, die etwas mehr "eyecandy" ist als der Standard-Look von GTK.
Unter Unices ist es etwas anders als unter Windows, aber in aller Regel sind Linux-User genervt, wenn irgendein ach so tolles Programm sich rausnehmen muss, Skins zu verwenden. Dafür gibt es in GTK+ Themes.

Verfasst: Mittwoch 24. Oktober 2007, 22:14
von veers

Code: Alles auswählen

button.set_relief(gtk.RELIEF_NONE)
Dann bist du den Rand los.
Ansonsten kannst du natürlich auch das Image als Button "missbrauchen" und dich da ans button-press-event o.ä hängen. Falls das Image keine Event feuern sollte (weiss ich nicht auswendig :/) kannst du es einfach in eine EventBox packen ;)
Leonidas hat geschrieben:
Beni hat geschrieben:für eine Software möchte ich eine GUI gestalten, die etwas mehr "eyecandy" ist als der Standard-Look von GTK.
Unter Unices ist es etwas anders als unter Windows, aber in aller Regel sind Linux-User genervt, wenn irgendein ach so tolles Programm sich rausnehmen muss, Skins zu verwenden. Dafür gibt es in GTK+ Themes.
Ich denke den Rand eines Buttons zu entfernen liegt durchaus noch drin. Und das wird ja auch von einigen Gnome/GTK Anwendungen gemacht. The Gimp zum Beispiel. ;)

Gruss,
Jonas.

Verfasst: Mittwoch 24. Oktober 2007, 22:20
von BlackJack
Es geht nicht um den Rand des Buttons sondern das wirklich nur die runde Grafik angezeigt wird, also ein rundes Fenster und kein eckiges.

Verfasst: Donnerstag 25. Oktober 2007, 08:46
von Beni
Guten Morgen,

vielen Dank für die Antworten!
BlackJack hat geschrieben:Es geht nicht um den Rand des Buttons sondern das wirklich nur die runde Grafik angezeigt wird, also ein rundes Fenster und kein eckiges.
Genau. So war das gemeint ;-)
Leonidas hat geschrieben:Unter Unices ist es etwas anders als unter Windows, aber in aller Regel sind Linux-User genervt, wenn irgendein ach so tolles Programm sich rausnehmen muss, Skins zu verwenden. Dafür gibt es in GTK+ Themes.
Ja, das ist mir durchaus bewusst. Bin selbst seit Jahren Linux-Benutzer. Allerdings möchte ich eine Art GUI im Stile von MythTV oder Ähnlichem erstellen. Es geht dabei auch um eine Art "Media-Center". Meine "Zielgruppe" möchte also mit Sicherheit eine GUI, die etwas aus dem Rahmen fällt.
veers hat geschrieben:

Code: Alles auswählen

button.set_relief(gtk.RELIEF_NONE)
Dann bist du den Rand los.
Danke für den Tipp. Das wäre nämlich meine nächste Frage gewesen ;-)
veers hat geschrieben: Ansonsten kannst du natürlich auch das Image als Button "missbrauchen" und dich da ans button-press-event o.ä hängen.
Hm...kannst Du mir vielleicht ein kurzes Beispiel geben, wie sowas aussehen könnte?

Viele Grüße

Beni

Verfasst: Mittwoch 7. November 2007, 19:48
von Chrispy

Code: Alles auswählen

button.set_image()
damit kannst du das bild auswählen.

Mit Glade kann man Buttons als Container benutzen und ein Bild hineinsetzen, wie das ohne Glade geht, weiss ich leider nicht.