Radiobutton选择在新窗口中

时间:2016-05-01 01:01:57

标签: python user-interface tkinter

所以我正在使用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()

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

1 个答案:

答案 0 :(得分:0)

可能会对你有帮助。

首先:将第11行更改为:self.CheckVar1 = IntVar(),因为radiobutton中的答案值是整数,而不是字符串。此外,我们会在self.变量中添加CheckVar1,因为我们希望稍后在reco方法中对其进行访问。

第二步:将第33行更改为:if self.CheckVar1.get() == 1:。在这里,我们使用与变量.get()关联的self.CheckVar1方法,以获取存储在其中的值。

现在,如果您运行该脚本,当您选择"1"选项时,您将获得Action打印(在IDLE中)。