2016-04-30 2 views
0

Я создаю очень простой графический совет GUI в python, и я пытаюсь открыть его в новом окне, когда выбран жанр. Я могу открыть окно, но у меня возникли проблемы с назначением переключателей для нового класса. Я хочу, чтобы иметь возможность выбрать жанр, нажать следующий и начать с моей рекомендации на основе кнопки, которую пользователь выбирает.Использование нескольких окон в tkinter GUI

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() 

     C1 = Radiobutton(master, text = "Action", variable = CheckVar1, value=1) 
     C1.pack(side=TOP, padx=10, pady=10) 
     C2 = Radiobutton(master, text = "Comedy", variable = CheckVar1, value=2) 
     C2.pack(side=TOP, padx=10, pady=10) 
     C3 = Radiobutton(master, text = "Documentary", variable = CheckVar1, value=3) 
     C3.pack(side=TOP, padx=10, pady=10) 
     C4 = Radiobutton(master, text = "Horror", variable = CheckVar1, value=4) 
     C4.pack(side=TOP, padx=10, pady=10) 
     C5 = Radiobutton(master, text = "Romance", variable = CheckVar1, value=5) 
     C5.pack(side=TOP, padx=10, pady=10) 

     self.nextbutton = Button(master, text="Next", command=self.reco) 
     self.nextbutton.pack(side=BOTTOM, padx=10, pady=10) 

    def reco(self): 
     self.newWindow = Toplevel(self.master) 
     self.app = movie2(self.newWindow) 

class movie2: 
    def __init__(self, master): 
     self.master = master 
     self.frame = Frame(self.master) 

    def C1(self): 
     print("option 1")  


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

* Я хочу, чтобы иметь возможность выбрать жанр, ударил следующий и начать с моей рекомендации основаны на кнопке, которую пользователь выбирает * - Если вы хотите, чтобы 2-й класс знал, что было выбрано, просто отправьте его в movie2, поэтому self.app = movie2 (self.newWindow, genre_selected) –

ответ

0

Вы можете передать выбранное значение для нового класса:

class movie1: 
    def __init__(self, master): 
     ... 
     self.CheckVar1 = StringVar() 
     ... 

    def reco(self): 
     ... 
     choice = self.CheckVar1.get() 
     self.app = movie2(self.newWindow, choice) 

class movie2: 
    def __init__(self, master, choice): 
     ... 
     print("you chose: %s" % choice) 
     ... 
Смежные вопросы