2016-10-04 8 views
-2

Mein Problem im Moment ist, ich versuche, eine Bezeichnung (Label 16) auf den ersten Wert von entry_values ​​[0] zu ändern, die nicht funktioniert Ich habe versucht, es als übergeben eine Variable und viele andere Dinge, nach etwa einer Stunde Forschung konnte ich keine Lösung finden. Ich denke, das Hauptproblem ist, dass es das Label setzt, bevor der Code mit dem Eintrag ausgeführt wird, so dass es sich nicht ändert. Wenn ich es auf eine Textvariable setze, erzeugt es eine leere Zeichenkette (denke ich), aber wenn ich nur Text verwende, wird eine 0 gesetzt, wo ich meine Nummer erwarte.Etikettenwerte ändern, wenn ein Eingabewert geändert wird

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

Eigentlich ist das Hauptproblem, dass Ihr Code zu viel Zeug enthält, das nicht mit dem Problem zusammenhängt und das es Ihnen (und uns) erschwert, es zu finden und zu beheben. Versuchen Sie, es auf ein [mcve] zu reduzieren, und wahrscheinlich werden Sie es selbst lösen, sonst haben Sie bessere Chancen, hier eine Antwort zu erhalten. – Goyo

+0

krank ändern, dass so schnell wie möglich, aber der Grund, warum ich es verlassen möchte, ist, weil manchmal ich zu viel ausgeschnitten oder Menschen nicht wissen, wo ich Werte oder wo Zeug definiert ist. Aber ich werde das nicht benötigte Zeug ausschneiden. – 2C00L4U

+0

Bitte lesen Sie den Link. Vorsichtig. Wenn das Beispiel vollständig und überprüfbar ist, haben Sie nicht zu viel geschnitten. – Goyo

Antwort

1

Um den Text eines Etiketts zu ändern, die Sie tun können:

label["text"] = textVar 

oder

label.config(text=textVar) 

Also in Ihrem obigen Code, wenn der Eintrag ändert, konfigurieren Sie das Etikett mit eine der oben genannten Optionen.

+0

Dies ist nicht wirklich, was ich suche Ich muss in der Lage sein, durch die Liste oder etwas ähnliches zu übergeben, aber ich kann es nicht an display_values ​​geben, wo ich versuche, sie durch zu übergeben. es ist wahrscheinlich ein einfacher Fehler – 2C00L4U

Verwandte Themen