2016-10-04 3 views
-2

Моя проблема на данный момент заключается в том, что я пытаюсь изменить метку (метку 16) на первое значение entry_values ​​[0], которое не работает. Я попытался передать его как переменная и многое другое, после часа исследования я не смог найти решение. Я думаю, основная проблема заключается в том, что он устанавливает метку перед кодом, когда запись запускается так, что она не изменится. когда я устанавливаю его в textvariable, он создает пустую строку (я думаю), но когда я использую только текст, он помещается в 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

Смежные вопросы