2016-05-01 6 views
0

Also mache ich eine Filmempfehlung GUI mit tkinter. Wenn der Benutzer ein Optionsfeld auswählt, möchte ich, dass es in einem neuen Fenster mit der Auswahl darin geöffnet wird. Also, wenn jemand Komödie wählt, kann ich in verschiedenen Filmen codieren und sie zufällig in einem neuen Fenster erscheinen lassen. Ich habe den Befehl, das Fenster zu öffnen, aber ich habe Probleme beim Zurückrufen der ausgewählten Auswahl.Radiobutton-Auswahl in neuem Fenster

from tkinter import * 

class movie1: 
def __init__(self, master): 
    self.master = master 
    master.title("Movie Recommendation") 

    self.label = Label(master, text= "Welcome to the movie recommendation application! \n Please select the genre of the movie you would like to see.") 
    self.label.pack(padx=25, pady=25) 

    CheckVar1 = StringVar() 

    self.radiobutton = Radiobutton(master, text = "Action", variable=CheckVar1, value=1, command=self.reco) 
    self.radiobutton.pack(side=TOP, padx=10, pady=10) 

    self.radiobutton = Radiobutton(master, text = "Comedy", variable=CheckVar1, value=2, command=self.reco) 
    self.radiobutton.pack(side=TOP, padx=10, pady=10) 

    self.radiobutton = Radiobutton(master, text = "Documentary", variable=CheckVar1, value=3, command=self.reco) 
    self.radiobutton.pack(side=TOP, padx=10, pady=10) 

    self.radiobutton = Radiobutton(master, text = "Horror", variable=CheckVar1, value=4, command=self.reco) 
    self.radiobutton.pack(side=TOP, padx=10, pady=10) 

    self.radiobutton = Radiobutton(master, text = "Romance", variable=CheckVar1, value=5, command=self.reco) 
    self.radiobutton.pack(side=TOP, padx=10, pady=10) 

    self.radiobutton.cget("value") 


def reco(self): 
    self.newWindow = Toplevel(self.master) 
    if ("value") == 1: 
     print("1") 


root = Tk() 
my_gui = movie1(root) 
root.mainloop() 
+0

Ein Beispiel zum Abrufen welcher Radiobutton wurde überprüft http://www.tutorialspoint.com/python/tk_radiobutton.htm –

Antwort

0

möglicherweise kann dies Ihnen helfen.

Zuerst: Ändern Sie die Zeile 11 in: self.CheckVar1 = IntVar(), da Ihre Antwortwerte in radiobutton Ganzzahlen sind, keine Zeichenfolgen. Zusätzlich fügen wir self. zur Variablen CheckVar1 hinzu, weil wir später darauf in der Methode reco zugreifen möchten.

Zweitens: Ändern Sie die Zeile 33 zu: if self.CheckVar1.get() == 1:. Hier haben wir die .get()-Methode verwendet, die der Variablen self.CheckVar1 zugeordnet ist, um den darin gespeicherten Wert zu erhalten.

Jetzt, wenn Sie das Skript ausführen, erhalten Sie die "1" gedruckt (in der IDLE), wenn Sie die Action Option auswählen.

Verwandte Themen