Seite 1 von 1

Python Wert aus Entryfenster wird nicht in Label dargestellt

Verfasst: Montag 25. August 2014, 17:05
von Duardo
Hallo, in meinem Programm kann man etwas in ein Entryfenster eingeben und es mit Knopfdruck in einem Label wieder ausgeben. Das Label ist da aber der Wert aus dem Entryfenster nicht. Was mache ich falsch? Schnonmal Danke im voraus! :) Hier der Code:

Code: Alles auswählen

# -*- coding: cp1252 -*-
import Tkinter as tk

class SampleApp(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        
        self.state("zoomed")

        container= tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)
        container.grid_rowconfigure(0, weight=2)
        container.grid_columnconfigure(0, weight=1)

        self.frames={}
        for F in (fenster, fensta):
            frame= F(container, self)
            self.frames[F]=frame
            frame.grid(row=0, column=0, sticky="nsew")
            frame.pack_propagate(0)

        self.show_frame(fenster)

    def show_frame(self, c):
        frame=self.frames[c]
        frame.tkraise()

class fenster(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        start=tk.Label(self, text="start")
        start.pack()

        button=tk.Button(self, command=lambda: controller.show_frame(fensta))
        button.pack()

class fensta(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        self.config(bg="lightgreen")
        
        label1=tk.Label(self, text="Wort1")
        label1.pack()
        wort1auf=tk.Entry(self)
        wort1auf.pack()
        
        def ok():
            label.pack()
            
        def wortauswahl():
            label1.pack()
            wort1auf.pack()
            button1.forget()
            label.forget()
      
        def voran():
            label1.forget()
            wort1auf.forget()
            button1.pack()
            label.pack()
            
        label=tk.Label(self, text=wort1auf.get())
        label.forget()
        
        button1=tk.Button(self, text="OK", command=ok)  #wenn man hier drückt sollte das label mit dem inhalt aus dem entryfenster erscheinen
        button1.forget()

        voran=tk.Button(self, text="Voran", command=voran)
        voran.pack()
        
if __name__== "__main__":
    app=SampleApp()
    app.mainloop()

Re: Python Wert aus Entryfenster wird nicht in Label dargest

Verfasst: Montag 25. August 2014, 17:57
von BlackJack
@Duardo: Du musst Dir mal klar machen wann das Label erstellt wird und was das Entry zu *dem* Zeitpunkt enthält, also was ein `get()` *dann* als Ergebnis liefert.

Re: Python Wert aus Entryfenster wird nicht in Label dargest

Verfasst: Montag 25. August 2014, 19:16
von Duardo
@BlackJack: Wenn ich ehrlich bin hilft mir das nicht weiter :?

Re: Python Wert aus Entryfenster wird nicht in Label dargest

Verfasst: Montag 25. August 2014, 21:26
von Schorlem
Duardo hat geschrieben:@BlackJack: Wenn ich ehrlich bin hilft mir das nicht weiter :?
Nun ja,
schau doch zuerst einmal, wann dem "text"-Parameter des Labels "label" ein Wert zugewiesen wird. Einmal. Einmal wird beim Erstellen des Labels "wort1auf.get()" aufgerufen und der Inhalt (nichts) wird übergeben. Wie gesagt, nur einmal.
Okay, du willst also, dass der Text im Label erscheint, wenn "button1" gedrückt wird. Da liegt es nahe, das in der bereits vorhandenen "ok"-Methode zu machen. Und das ist auch ziemlich einfach. Insgesamt also:

Code: Alles auswählen

def ok():
    label.pack()
    label.configure(text=wort1auf.get())

Re: Python Wert aus Entryfenster wird nicht in Label dargest

Verfasst: Dienstag 26. August 2014, 16:40
von Duardo
@Schorlem: Vielen Dank das war sehr hilfreich! :D