[gelöst] - Radiobutton problem

Fragen zu Tkinter.
Antworten
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Hey Leute,

Ich habe ein Problem mit dem Radio-button.
Ich will Eine Auswahl bei meine wwwSearchdesk - Programm machen und die soll so Aussehen:

° Google
● Bing
° Web - Search
° Ecosia

Wenn ich jetzt ein Eintrag auswähle soll der übergeben werden mit command oder wie das dort geht!
Das Funktioniert aber nicht, es kommt immer google raus???

Mein Code:

Code: Alles auswählen

    def sichere():
        print (var.get())
        
    suchmaschine=[('Google', 'google'),('Bing', 'bing')]

    var = StringVar()
    for text, value in suchmaschine:
        Radiobutton(root, text=text,value = value, textvariable=var, command=sichere).pack(anchor=W)
        var.set("google")
Es gibt keine Fehlermeldung!
Zuletzt geändert von jtschoch am Mittwoch 12. Oktober 2011, 15:05, insgesamt 1-mal geändert.
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi jtschoch

The solution is simple:

Code: Alles auswählen

textvariable=var
replaced by:

Code: Alles auswählen

variable=var
Gruß wuf :wink:
Zuletzt geändert von wuf am Montag 26. September 2011, 17:24, insgesamt 1-mal geändert.
Take it easy Mates!
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Du braucht nicht 'textvariable' sondern 'variable' bei der Radiobutton Initialisierung.

Code: Alles auswählen

import Tkinter as tk


class Gui(object):

  def __init__(self, engines):

    self.root = tk.Tk()
    self.engines = engines
    self.ivar = tk.IntVar()
    self.radiobuttons = [tk.Radiobutton(self.root, text=engine, variable=self.ivar, value=i,
                                        command=self.check) for i, engine in enumerate(engines)]
    for i, but in enumerate(self.radiobuttons):
      but.grid(row=i, sticky=tk.W)
      
    #self.ivar.set(1)
    self.radiobuttons[1].select()

    
  def check(self):

    print self.engines[self.ivar.get()]

     
  def run(self):

    self.root.mainloop()


if __name__ == '__main__':

  engines = 'Google', 'Bing', 'Web-Search', 'Ecosia'
  Gui(engines).run()
Auch solltest du dir so langsam angewoehnen, das Ganze objektorientiert zu programmieren.
Der Effbot macht es einem eigentlich relativ leicht, ein Grundverstaendnis fuer Tkinter zu bekommen.
Immer erst drauf los zu programmieren und dann auf passenden Antwort- Broeckchen
zu warten halte ich nicht fuer die sinnvollste Methode.

:wink:
yipyip

(wuf war schon da)
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Danke,
ach ja mit den Class habe ich demnächst mal vor das zu üben.
Ich bekomme das mit den Klassen (Class) nicht hin!

Und ich habe schon gegoogelt habe, aber nicht so richtig Beispiele gefunden,
und habe es auch nicht so richtig verstanden
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Antworten