Entry Felder verrücken

Fragen zu Tkinter.
Antworten
nightm4r3^
User
Beiträge: 83
Registriert: Montag 11. Februar 2008, 15:43
Kontaktdaten:

Samstag 15. März 2008, 11:09

High all

irgendwie hat mir niemand eine Wirklich schlüssige antwort bei meinem letzten Post gegeben. Deshalb hier nochmal ein neues Thema. Ich würde gerne bei einem Bruchrechner die Entry-Felder wie bei einem Bruch anzeigen lassen, sprich Zähler, unten drunter Nenner, dann ein Plus in die Mitte und das gleiche nochmal hinter dem Plus.

Code: Alles auswählen

#Nebenfenster
    fenster6=tk.Toplevel()
    fenster6.geometry('400x300')
#Label im Nebenfenster
    fenster6.label=tk.Label(fenster6,text='Brüche addieren', font=('Verdana',16,'bold'))
    fenster6.label.pack()
#2.Label im Nebenfenster
    fenster6.label2=tk.Label(fenster6,text='Bitte geben Sie die Brüche ein')
    fenster6.label2.pack()
#Entry Feld 1
    z1=tk.Entry(fenster6)
    z1.grid(row=3,column=1)
    z1.get()
    z1.pack()
#Entry Feld 2
    n1=tk.Entry(fenster6)
    n1.grid(row=4,column=1)
    n1.get()
    n1.pack()
#Entry Feld 3
    z2=tk.Entry(fenster6)
    z2.grid(row=3, column=40)
    z2.get() 
    z2.pack()
#Entry Feld 4
    n2=tk.Entry(fenster6)
    n2.grid(row=4, column=40)
    n2.get()
    n2.pack()
So hab ichs von diversen Seiten erfahren, aber es funktioniert bei mir nicht. Weiß jemand Hilfe?

mfg nightm4r3^
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Samstag 15. März 2008, 13:48

Nimm dir mal einen Tag Zeit und arbeite das durch:

Tkinter Reference

Dann dürften alle deine Fragen beantwortet sein.
BlackJack

Samstag 15. März 2008, 14:33

Ich glaube ich hatte schonmal gesagt, dass ich für die Brüche ein eigenes Widget schreiben würde, mit zwei `Entry`\s übereinander.
nightm4r3^
User
Beiträge: 83
Registriert: Montag 11. Februar 2008, 15:43
Kontaktdaten:

Sonntag 16. März 2008, 10:19

Ja ich weiß Black Jack aber da ich bei Python noch relativ neu bin, würd ich lieber mal alles "manuell" machen, als das ich jetzt schon anfang mir meine Widgets selber zu programmieren.

Kann mir nicht mal jemand bei dem oben geposteten Programmcode den Fehler sagen?
BlackJack

Sonntag 16. März 2008, 10:50

Du verwirrst Tk damit, dass Du die Widgets sowohl mit dem "grid"- als auch mit dem "pack"-Layout-Manager platzieren möchtest. Und den Sinn der `get()`-Aufrufe habe ich auch nicht so recht verstanden.
nightm4r3^
User
Beiträge: 83
Registriert: Montag 11. Februar 2008, 15:43
Kontaktdaten:

Sonntag 16. März 2008, 10:58

das get() war noch vom anfang da. hat keine funktion. Ich hab jetzt das pack() bei allen feldern weggemacht und jetzt hängt sich mein programm auf. also nur wenn ich auf den Button zum Brüchaddieren klick. wodran liegt das jetzT?
BlackJack

Sonntag 16. März 2008, 11:16

Vielleicht an irgend einem Fehler. Ist jetzt aber nur geraten. ;-)
nightm4r3^
User
Beiträge: 83
Registriert: Montag 11. Februar 2008, 15:43
Kontaktdaten:

Sonntag 16. März 2008, 11:21

Ne echt^^ DAS hät ich net gedacht. Hier ist mal der Programmcode halt nur für das Brüche addieren.

Code: Alles auswählen

def aufgabe5():
#Nebenfenster
    fenster6=tk.Toplevel()
    fenster6.geometry('400x300')
#Label im Nebenfenster
    fenster6.label=tk.Label(fenster6,text='Brüche addieren', font=('Verdana',16,'bold'))
    fenster6.label.pack()
#2.Label im Nebenfenster
    fenster6.label2=tk.Label(fenster6,text='Bitte geben Sie die Brüche ein')
    fenster6.label2.pack()
#Entry Feld 1
    z1=tk.Entry(fenster6)
    z1.grid(row=3,column=1)
#Entry Feld 2
    n1=tk.Entry(fenster6)
    n1.grid(row=4,column=1)
#Entry Feld 3
    z2=tk.Entry(fenster6)
    z2.grid(row=3, column=4)
#Entry Feld 4
    n2=tk.Entry(fenster6)
    n2.grid(row=4, column=4)
#GGT Ausgabe
    def do_bra():
        fensterbra=tk.Toplevel()
        fensterbra.geometry('60x60')
        fensterbra.label=tk.Label(fensterbra, text=bruchrechneradd(int(z1.get()), int(n1.get()), int(z2.get()), int(n2.get())))
        fensterbra.label.pack()

#Button erstellen
    fenster6.button=tk.Button(fenster6,text='Bestätigen',
                           command=do_bra)
    fenster6.button.pack()
    
#Fenster anzeigen
    fenster6.mainloop()
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Sonntag 16. März 2008, 12:55

Das ist ja nicht der erste Thread, wo du mit deinem "Bruchrechner" kommst und es ist dir von mehreren schon dringend geraten worden, dass du dich zunächst mal gründlich mit der Materie selbst beschäftigst, statt immer nur an einzelnen Symptomen zu kurieren mit dem einzigen Ziel, es irgendwie ans Laufen zu bekommen.

Nach wie vor verwendest du zwei Geometriemanager gemischt in einem Frame - das geht nicht gut; wurde ja schon drauf hingewiesen, hast du aber immer noch nicht geändert.

Sehr empfehlen kann ich dir die Lektüre von Thinking in Tkinter.

Da werden zwar nur einige grundlegende Widgets behandelt und nur der pack-Geometriemanager, aber dafür geht es genau um das, was der Titel verheißt: "Tkinter thinking". Das wäre m.E. für dich genau das richtige.

Und wenn du das drauf hast, dann die "Tkinter Reference" - s.o.

Mach doch mal ein paar Tage Pause vom Bruchrechenprogramm, nimm dir Zeit, die Grundlagen WIRKLICH zu verstehen und dann brauchst du gar keine Hilfe mehr fürs Bruchrechenprogramm, weil du es alleine schaffst.
Antworten