所以我正在使用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()
答案 0 :(得分:0)
可能会对你有帮助。
首先:将第11行更改为:self.CheckVar1 = IntVar()
,因为radiobutton
中的答案值是整数,而不是字符串。此外,我们会在self.
变量中添加CheckVar1
,因为我们希望稍后在reco
方法中对其进行访问。
第二步:将第33行更改为:if self.CheckVar1.get() == 1:
。在这里,我们使用与变量.get()
关联的self.CheckVar1
方法,以获取存储在其中的值。
现在,如果您运行该脚本,当您选择"1"
选项时,您将获得Action
打印(在IDLE中)。