2017-04-14 84 views
-1

我正在学习使用Python进行处理,实际上我将重点放在了Tkinter上。所以我想用代码和清单编写一个界面。如果你选择一个答案,你应该得到分数,如果你有一个分数,你应该得到一个结果。我认为这是一种测试。如何为不同变量定义组

对于这个项目我想分组我的清单对象,例如在组a中是变量1,5和8,Python应该打印我选择一个组的时间。

我的问题是,我不知道如何定义该组。我相信我可以写一些类似“a = var1,var5,var8”的东西,但它不起作用。

谢谢你的帮助!我希望我的英语可以理解。 :) LoveSpock

这是我的代码。如果它运行,我有可能使名称中的变量名称有意义,这是测试名称。另外它还没有准备好。 :)

*from Tkinter import * 
import sys 
master = Tk() 
var = IntVar() 
master.geometry('1500x1000') #Abmessung Fenster 
master.title('test') #Tittel Fenster 
def create_window(): #Definion und Festlegung neues Fenster 
    toplevel = Toplevel() 
    toplevel.title('result') 
    toplevel.geometry('1500x1000') 
    toplevel.focus_set() 
def var_states(): #Zeigt wie oft angeklickt wurde 
    print('%s %s %s %s' % (var1.get(), var2.get(), var3.get(), var4.get())) 

a#Erzeugung Checkliste---------------------------------------------------------------- 
Label(master, text='Choose one answer', font=('times', 30)).grid(row=0, sticky=W) 
var1 = IntVar() 
Checkbutton(master, text='male', variable=var1).grid(row=1, sticky=W) 
var2 = IntVar() 
Checkbutton(master, text='female', variable=var2).grid(row=2, sticky=W) 
var3 = IntVar() 
Checkbutton(master, text='male1', variable=var3).grid(row=3, sticky=W) 
var4 = IntVar() 
Checkbutton(master, text='female1', variable=var4).grid(row=4, sticky=W) 
a#------------------------------------------------------------------------------------ 
a = var1 
b = var2 
c = var3 
d = var4 
Button(master, text='solve', command=var_states).grid(row=5, sticky=W, pady=4) #Button fuer 'zeigt wie oft angeklickt wurde' 
Button(master, text='forward', command=create_window).grid(row=6, sticky=W, pady=4)#Button neues Fenster 
master.mainloop()* 
+0

请发表[mcve]。 – YiFei

+0

如果您向我们提供您所尝试过的东西,那么它可以帮助您更好地完成工作。你在这里问的是有人为你写代码。告诉我们你知道什么,你尝试过什么,描述问题,然后让我们帮助你建立你的知识。 – pstatix

+0

你也许想要一个Radiobutton?如果您要求用户从列表中选择一个答案,Radiobutton更有意义。然后你创建一个变量传递给每个'Radiobutton'。然后你为每个'Radiobutton'指定一个不同的'value'。 – FamousJameous

回答

0

将变量存储在另一个中,不一定有干净的方法来做到这一点。

我会建议使用eval,从而将希望作为字符串访问的变量存储在列表中,然后评估该字符串的内容。这看起来是这样的:

var1 = "dogs" 
var2 = "cats" 
var3 = "hens" 

var_list = ["var1", "var3"] 

for variable in var_list: 
    print(eval(variable)) 

打印:

dogs 
hens 

希望这有助于!

请注意,通常应将eval用于此类场景,而不是用于输入用户输入的场景,因为它们的代码可能会在程序中运行。但是,避免这种情况,eval应该在这里很好。

+0

嗨,谢谢你的帮助。我尝试使用它,但它没有运行。我觉得我做错了什么。我已经编辑了我的问题,现在我的代码已经存在了。也许你想看看它。谢谢! – LoveSpock