Seite 1 von 1

Checkbox Status auslesen

Verfasst: Freitag 23. September 2011, 20:07
von Bobby-John-Joe
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...

Re: Checkbox Status auslesen

Verfasst: Samstag 24. September 2011, 08:23
von wuf
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:

Re: Checkbox Status auslesen

Verfasst: Samstag 24. September 2011, 09:21
von Bobby-John-Joe
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