Buttons auf einem Image?

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
Chaosspawn23
User
Beiträge: 3
Registriert: Montag 30. November 2009, 00:11

Hallo allerseits!

Ich arbeite gerade an einem pygtk-Programm, und bin nun auf folgendes Problem gestoßen:
Ist es möglich, auf irgendeine Art Buttons (oder ähnliche klickbare Objekte) auf einem Image platziert (möglichst so, dass man das Bild hinterher noch sehen kann)? Ich denke dabei an sowas wie die image map in HTML, also dass der Benutzer ein Bild sich hat, bei dem bestimmte Bereiche (ruhig auch rechteckige) klickbar sind.

Bin für jede Hilfe dankbar! :)

EDIT: Topic geändert um anderen Suchenden das Leben zu erleichtern ;)
Edit (Leonidas): Topic geändert um den Forenregeln zu entsprechen.
Zuletzt geändert von Chaosspawn23 am Montag 30. November 2009, 15:08, insgesamt 1-mal geändert.
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Das müsste so gehen:
-Als Container ein gtk.Fixed()
-Dann eine gtk.Image() mit put(0,0, gröse-des-bildes) platzieren
-dann an den verschiedenen Bereichen eine gtk.EventBox() mit put() platzieren
-bei den gtk.EventBox'sen must du noch ein set_visible_window(False) machen
-dann kannst du das Signal "button-press-event" benützen

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Chaosspawn23
User
Beiträge: 3
Registriert: Montag 30. November 2009, 00:11

Vielen Dank für die Antwort erstmal! :)

Die Methode scheint vielversprechend, aber ich hab mit der gtk.EventBox noch ein Verständnisproblem - wie bestimmt man denn, wie groß die werden soll? Mit gtk.Fixed.put kann man ja scheinbar nur die Startkoordinaten eines Objekts bestimmen, aber nicht die Endkoordinaten, also nicht die Größe.
Das mit der Größe wär eben wichtig, weil ich ja mehrere klickbare (unsichtbare) Rechtecke auf dem Bild haben will...

Sorry für meine noobigen Fragen :roll:
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Chaosspawn23 hat geschrieben:Vielen Dank für die Antwort erstmal! :)

Die Methode scheint vielversprechend, aber ich hab mit der gtk.EventBox noch ein Verständnisproblem - wie bestimmt man denn, wie groß die werden soll? Mit gtk.Fixed.put kann man ja scheinbar nur die Startkoordinaten eines Objekts bestimmen, aber nicht die Endkoordinaten, also nicht die Größe.
Das mit der Größe wär eben wichtig, weil ich ja mehrere klickbare (unsichtbare) Rechtecke auf dem Bild haben will...

Sorry für meine noobigen Fragen :roll:
Generell kann man eine Minimalgröße für Widgets mit ``set_size_request(width, height) einstellen.
Chaosspawn23
User
Beiträge: 3
Registriert: Montag 30. November 2009, 00:11

Ahh, jetzt ist alles klar! Danke für die Hilfe, das set_size_request war genau das was mir noch gefehlt hat. Und fertig ist der digitale Adventskalender :D
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Macht mich neugierig, kannst du das Skript mal posten?
the more they change the more they stay the same
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Chaosspawn23 hat geschrieben:Ahh, jetzt ist alles klar! Danke für die Hilfe, das set_size_request war genau das was mir noch gefehlt hat. Und fertig ist der digitale Adventskalender :D
Coole Idee, würd mich auch mal interessieren, wie der aussieht ;)
Antworten