2016-10-04 192 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