Checkbox Status auslesen

Fragen zu Tkinter.
Antworten
Bobby-John-Joe
User
Beiträge: 7
Registriert: Freitag 23. September 2011, 19:50

So, jetzt muss ich auch mal selbst eine Frage stellen, weil ich nirgends eine Antwort gefunden habe.

Mein Problem ist folgendes: Ich habe ein Programm mit GUI von dem aus man ein neues Fenster für Einstellungen öffnen kann. In diesem Einstellungsfenster sind Checkboxen zum abhaken. Als Rückgabewert bekomme ich aber immer nur 0. Hier mal ein Minibeispiel das das gleiche Problem aufweist.

Code: Alles auswählen

import Tkinter as tk

class Hauptprogramm(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        s=Einstellungen()
        self.mainloop()

class Einstellungen(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.zahl=tk.IntVar()
        self.knopf()
        

    def knopf(self):
        c=tk.Checkbutton(self,text='Box',var=self.zahl,command=self.check)
        c.pack()
        
    def check(self):
        print self.zahl.get()

if __name__=='__main__':
    s=Hauptprogramm()
Was mach ich hier falsch? Wenn ich Einstellungen alleine starte (dann mit mainloop) funktionierts...
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Bob-John-Joe

Willkommen in unserem Forum.

So sollte es gehen:

Code: Alles auswählen

import Tkinter as tk

class Hauptprogramm(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        s=Einstellungen()
        self.mainloop()

class Einstellungen(tk.Toplevel):
    def __init__(self):
        tk.Toplevel.__init__(self)
        self.zahl=tk.IntVar()
        self.knopf()
       
    def knopf(self):
        c=tk.Checkbutton(self,text='Box',var=self.zahl,command=self.check)
        c.pack()
       
    def check(self):
        print self.zahl.get()

if __name__=='__main__':
    s=Hauptprogramm()
Das Hauptfenster tk.Tk() darf in einer Anwendung nur einmal erstellt werden. Jedes weitere anwendungszugehörige Fenster aber mit tk.Toplevel()

Noch viel Spass.

Gruß wuf :wink:
Take it easy Mates!
Bobby-John-Joe
User
Beiträge: 7
Registriert: Freitag 23. September 2011, 19:50

Vielen Dank, jetzt läufts!

wieder was gelernt (war mir gar nicht bewusst, das es Toplevel gibt, muss ich mal wieder ein bisschen lesen :) )

Gruß, Bobby
Antworten