ColorSelectionDialog - nur weiß?

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
carduelis
User
Beiträge: 3
Registriert: Dienstag 8. September 2009, 03:36

Tja, ich bin ein ziemlicher pygtk-Neuling und wollte mich über die Ferien etwas einarbeiten. Und im Moment häng' ich bei meinem "Spielwiese-Programm" so komplett, dass ich mal hier Rat suche... Also... der Teil, der Probleme bereitet:
Soll:
gtk.ColorSelectionDialog öffnen
eine vorher definierte alte Farbe ist ausgewählt
neue Farbe wählen und verarbeiten (für's erste ausgeben mit print)

Macht:
gtk.ColorSelectionDialog öffnen
die alte Farbe ist ausgewählt
neue Farbe lässt sich einstellen, ausgegeben wird aber nur weiß (#fff)

Code: Alles auswählen

def farbres(self, event, data=None):
        fachfarbe = "#CD44BF" 
	farbseldlg = gtk.ColorSelectionDialog("Farbwaeheler")
	gtkfarbe = gtk.gdk.color_parse(fachfarbe)
	farbseldlg.colorsel.set_previous_color(gtkfarbe)
	farbe = farbseldlg.colorsel.get_current_color()
	farbseldlg.ok_button.connect("clicked", self.farbspeichern, farbe)
	farbseldlg.run()
		
def farbspeichern(self, event, farbe):
		print farbe
Hmm, achja, und das ist möglicherweise ziemlich unordentlich - für "Aufräumtipps" bin ich auch jederzeit dankbar! ;)

carduelis[/code]
BlackJack

@carduelis: Naja das ist doch irgendwie logisch, Du fragst die Farbe ab, *bevor* der Dialog überhaupt abgelaufen ist. Du darfst die Farbe erst abfragen *nachdem* auf die "Ok"-Schaltfläche gedrückt hat, also in der Funktion die übergeben wird.
carduelis
User
Beiträge: 3
Registriert: Dienstag 8. September 2009, 03:36

Oh, Tatsache :oops: Mit der Logik hatte ich's noch nie so...
Danke!
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Aufräumtipp:
Deine Variablen/Funktionsnamen sind echt grausam.
Trenne doch bitte die einzelnen Wörter der Namen durch Unterstriche, das macht das Ganze schon deutlich übersichtlicher! Außerdem mische nicht deutsche und englische Begriffe (vor allem nicht in einer Variable!), sondern bleibe da einheitlich, z.B.: farbe_speichern; farbauswahl_dialog; usw...

(Bei Klassen macht man die Trennung natürlich mit CamelCase)
carduelis
User
Beiträge: 3
Registriert: Dienstag 8. September 2009, 03:36

Das liegt wohl vor allem an meiner Schreibfaulheit... Naja, das Programm an sich ist soweit fertig, dann wird jetzt aufgräumt usw.
Antworten