2016-10-04 193 views
-2

我现在的问题是我试图将标签(标签16)更改为entry_values [0]的第一个不工作的值,我尝试将它作为一个变量和许多其他的东西,经过大约一个小时的研究后,我找不到解决方案。我认为主要的问题是它在代码之前设置标签并且运行条目以便它不会改变。当我将它设置为文本变量时,它会生成一个空字符串(我认为),但是当我仅使用文本时,它会将0放在我期望编号的位置。更改输入值更改标签值

def sub_menu(root): 
    global subpage 
    subpage = Frame(root) 
    button5 = Button(subpage, text="Save Generation Data", 
       command = lambda: save_entries()) 
    button5.grid(row = 1, column = 6, sticky = E) 

    button6 = Button(subpage, text="Return To Main Page", 
       command = lambda: switch_page("main")) 

    button6.grid(row = 0, column = 6, sticky = W) 

    juveniles_label0 = Label(subpage,text="Juveniles") 
    adults_label1 = Label(subpage,text="Adults") 
    seniles_label2 = Label(subpage,text="Seniles") 
    population_label3 = Label(subpage,text="Population (Thousands)") 
    survival_rate_label4 = Label(subpage,text="Survival Rate (Between 0 and 1)") 
    birth_rate_label5 = Label(subpage,text="Birth Rate") 
    number_of_gens_label6 = Label(subpage,text="Number of Generations") 
    disease_trigger_label7 = Label(subpage,text="Disease Trigger Point") 

    global entry0 
    entry0 = Entry(subpage) 
    global entry1 
    entry1 = Entry(subpage) 
    global entry2 
    entry2 = Entry(subpage) 
    global entry3 
    entry3 = Entry(subpage) 
    global entry4 
    entry4 = Entry(subpage) 
    global entry5 
    entry5 = Entry(subpage) 
    global entry6 
    entry6 = Entry(subpage) 
    global entry7 
    entry7 = Entry(subpage) 
    global entry8 
    entry8 = Entry(subpage) 


    juveniles_label0.grid(row = 0, column = 1) 
    adults_label1.grid(row = 0, column = 2) 
    seniles_label2.grid(row = 0, column = 3) 
    population_label3.grid(row = 1, column = 0) 
    survival_rate_label4.grid(row = 2, column = 0) 
    birth_rate_label5.grid(row = 3, column = 0) 
    number_of_gens_label6.grid(row = 3, column = 2) 
    disease_trigger_label7.grid(row = 4, column = 0) 

    entry0.grid(row = 1, column = 1) 
    entry1.grid(row = 1, column = 2) 
    entry2.grid(row = 1, column = 3) 
    entry3.grid(row = 2, column = 1) 
    entry4.grid(row = 2, column = 2) 
    entry5.grid(row = 2, column = 3) 
    entry6.grid(row = 3, column = 1) 
    entry7.grid(row = 3, column = 3) 
    entry8.grid(row = 4, column = 1) 



    return subpage 

def save_entries(): #entry recieve point 
    save_page = Frame(root) 

    """ if e0 < 0: 
      make a check to check if value is < 0 dont accept and if a value is inputed or not using if type(string_name) == str """ 
    e0 = entry0.get() 
    if e0 >= 0: 
     entry_values[0] = (e0) 
    e1 = entry1.get() 
    if e0 >= 0: 
     entry_values[1] = (e1) 
    e2 = entry2.get() 
    if e0 >= 0: 
     entry_values[2] = (e2) 
    e3 = entry3.get() 
    if e0 >= 0: 
     entry_values[3] = (e3) 
    e4 = entry4.get() 
    if e0 >= 0: 
     entry_values[4] = (e4) 
    e5 = entry5.get() 
    if e0 >= 0: 
     entry_values[5] = (e5) 
    e6 = entry6.get() 
    if e0 >= 0: 
     entry_values[6] = (e6) 
    e7 = entry7.get() 
    if e0 >= 0: 
     entry_values[7] = (e7) 
    e8 = entry8.get() 
    if e0 >= 0: 
     entry_values[8] = (e8) 

    print entry_values 


    return save_page 


def display_values(root): 
    sub2 = Frame(root) 
    global entry_values 


    label8 = Label(sub2, text = "Juveniles") 
    label9 = Label(sub2, text = "Adults") 
    label10 = Label(sub2, text = "Seniles") 

    label11 = Label(sub2, text = "Population(Thousands)") 
    label12 = Label(sub2, text = "Survival Rate(Between 1 and 0)") 
    label13 = Label(sub2, text = "Birth Rate") 
    label14 = Label(sub2, text = "Number of Generations") 
    label15 = Label(sub2, text = "Disase Trigger Point") 

    label16 = Label(sub2, text = entry_values[0]) 
    label17 = Label(sub2, textvariable = entry_values[1]) 
    label18 = Label(sub2, textvariable = "") 
    label19 = Label(sub2, textvariable = "") 
    label20 = Label(sub2, textvariable = "") 
    label21 = Label(sub2, textvariable = "") 
    label22 = Label(sub2, textvariable = "") 
    label23 = Label(sub2, textvariable = "") 
    label24 = Label(sub2, textvariable = "") 


    button7 = Button(sub2, text="Return To Main Page", 
       command = lambda: switch_page("main")) 


    label8.grid(row = 0, column = 1) 
    label9.grid(row = 0, column = 2) 
    label10.grid(row = 0, column = 3) 
    label11.grid(row = 1, column = 0) 
    label12.grid(row = 2, column = 0) 
    label13.grid(row = 3, column = 0) 
    label14.grid(row = 3, column = 3) 
    label15.grid(row = 4, column = 0) 
    label16.grid(row = 1, column = 1) 
    label17.grid(row = 1, column = 2) 
    label18.grid(row = 1, column = 3) 
    label19.grid(row = 2, column = 1) 
    label20.grid(row = 2, column = 2) 
    label21.grid(row = 2, column = 3) 
    label22.grid(row = 3, column = 1) 
    label23.grid(row = 3, column = 3) 
    label24.grid(row = 4, column = 1) 

    button7.grid(row = 0, column = 0) 

    return sub2 
+1

其实主要的问题是你的代码包含了太多与问题无关的东西,这使得你(和我们)很难找到并修复它。尽量减少它到[mcve],可能你会自己解决它,否则你将有更好的机会在这里得到答案。 – Goyo

+0

生病变了,但我喜欢离开它的原因是因为有时我太多了,或者人们不知道我在哪里获得价值或东西被定义。但我会删除不需要的东西。 – 2C00L4U

+0

请阅读链接。小心。如果这个例子是完整且可验证的,那么你不会削减太多。 – Goyo

回答

1

为了更改标签的文本,你可以这样做:

label["text"] = textVar 

label.config(text=textVar) 
在上面的代码

因此,当上述项目的变化,使用重新配置标签以上选项之一。

+0

这不是我真正想要的,我需要能够通过列表或类似的东西,但我不能给它display_values,我试图通过他们通过。它最可能是一个简单的错误 – 2C00L4U