Tkinter checkbutton aktivieren

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich habe ein Problem mit einem checkbutton in einem Tkinter-Menu. Checkbuttons innerhalb eines Fenster kann man mit der Methode select() oder deselect() setzen und entfernen.

    Wie kann man innerhalb eines TKinter-Menus, bei der ich die Methode add_checkbutton verwende, den checkbutton aktivieren oder deaktivieren? Ich lese beim Start des Programms einen Wert aus einer Datei. In Abhängigkeit des Wertes soll der Haken gesetzt oder eben nicht gesetzt werden.

    Vielen Dank und einen schönen Sonntag.

    whitechristmas

  • Hallo Whitechrismas,

    da nutzest Du die Methode [font="Courier New"]config()[/font] und den Parameter[font="Courier New"] indicatoron[/font], den Du entsprechend setzest.
    Probiere auch mal [font="Courier New"]onvalue[/font] und [font="Courier New"]offvalue[/font] aus.


    [Quelle]


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (22. Mai 2016 um 11:00)

  • Hallo Andreas,

    entschuldige bitte, ich bin blutiger Anfänger. Mein Code sieht so aus:

    Code
    einstellungen=Menu(master=master)
    menubar.add_cascade(label="Einstellungen", menu=einstellungen)
    tor = BooleanVar() 
    
    
    einstellungen.add_checkbutton(label="Tornachtabfrage", variable=tor)
    einstellungen.add_checkbutton(label="Pumpenautomatik")

    Ich weiß nicht wie ich den checkbutton im Menu ansprechen kann.

    Vielen Dank.

    whitechristmas

  • Hallo Whitechrismas,


    Hallo Andreas,

    entschuldige bitte, ich bin blutiger Anfänger. Mein Code sieht so aus:

    Entschuldige ebenso - ich habe zwar Anwendungen in > 15 Programmiersprachen gesschrieben - aber Python war nicht darunter und wird es auch nicht schaffen.



    Ich weiß nicht wie ich den checkbutton im Menu ansprechen kann.

    Du hast doch irgendwo in Deinem Code ein Menü angelegt. Dort wird Dir auch ein Rückgabewert geliefert. An diesen kannst Du die genannten Methoden anhängen oder Werte setzen.

    Ansatzweise machst Du das doch schon. Du musst die Methoden nur auf das richtige Objekt anwenden.

    Hast Du den Link durchgelesen, den ich Dir geschickt habe? Da steht doch eigentlich alles drin.

    Nur dass Du das nicht auf den Checkbutton sondern auf entsprchende Menüs anwenden musst.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Andreas,

    ich habe mir den Link angesehen, kann aber leider nicht viel damit anfangen.

    Der Code vom Menu sieht so aus.

    Mir ist nicht klar wie ich innerhalb des Menus genau den checkbutton ansprechen kann, der den Haken erhalten soll. Ich bekomme es nicht gebacken. Muss mir eine andere Lösung überlegen.

    Trotzdem vielen Dank und einen schönen Tag noch.

    whitechristmas

  • Hallo Whitechrismas,

    dann schau doch mal hier nach Deiner Lösung.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (22. Mai 2016 um 12:03)


  • Entschuldige ebenso - ich habe zwar Anwendungen in > 15 Programmiersprachen gesschrieben - aber Python war nicht darunter und wird es auch nicht schaffen.

    Dann entgeht dir aber was. Python gehört zu den am meisten verwendeten und unterstützten Sprachen - bei den angeblich 15 anderen die du schon genutzt hast werden mit Sicherheit weniger bekannte/genutzte dabei sein, insbesondere bzgl. Linux.
    Ich find's allerdings auch irgendwie komisch das Du mit diesem Satz auf "entschuldige ich bin anfänger" antwortest...


    Ich empfehle eine Google Suche nach: tkinter menu checkbutton activate

    Daraus geht hervor das es nichts mit 'indicatoron' zu tun hat, sondern mit 'variable':

    Zitat


    variable=
    Associates a Tkinter variable to the button. When the button is pressed, the variable is toggled between offvalue and onvalue. Explicit changes to the variable are automatically reflected by the buttons. (variable/Variable)

    Beispiel:
    [code=php]
    from tkinter import *

    master = Tk()

    expand = IntVar()
    c = Checkbutton(master, text="Erweitern", variable=expand)
    c.pack()

    master.mainloop()
    [/php]

    Damit ist "Erweitert" nicht sofort ausgewählt. Setzt man aber nach IntVar() direkt den Wert auf 1 (was dem Standard "onvalue" entspricht) ändert sich das ganze:

    [code=php]
    from tkinter import *

    master = Tk()

    expand = IntVar()
    expand.set(1)
    c = Checkbutton(master, text="Erweitern", variable=expand)
    c.pack()

    master.mainloop()
    [/php]

    Würde man "onvalue" auf True und "offvalue" auf False stellen, müsste man hier mit BooleanVar() arbeiten und dementsprechend expand.set(True) verwenden.


    Hier besteht aber auch die Möglichkeit stattdessen "select()" anzuwenden, was im Prinzip das gleiche bewirkt, und dem entspricht was whitechristmas selbst bereits vermutete:

    [code=php]
    from tkinter import *

    master = Tk()

    expand = IntVar()
    c = Checkbutton(master, text="Erweitern", variable=expand)
    c.select()
    c.pack()

    master.mainloop()
    [/php]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!