Bedingungen

Fragen zu Tkinter.
spaceboy
User
Beiträge: 5
Registriert: Freitag 11. Mai 2007, 16:21

Bedingungen

Beitragvon spaceboy » Sonntag 3. Juni 2007, 18:46

hallo ihr,
folgendes problem, so weit bin ich schon:


Code: Alles auswählen

import Tkinter as tk

master = tk.Tk()

columnheaders = ["   ","Spalte 1","Spalte 2","Spalte 3"]
rowbeginners = ["Zeile 1","Zeile 2","Zeile 3","Zeile 4","Zeile 5",]

i=0
for row in rowbeginners:
    n=0
    for column in columnheaders:
        if i == 0:
            tk.Label(master, width=20,text=column
                ).grid(row=i, column=n, sticky=tk.W+tk.E)
        elif n == 0:
            tk.Label(master, width=20,text=row
                ).grid(row=i, column=n, sticky=tk.W+tk.E)
        else:
            tk.Entry(master, width=20,background='white'
                ).grid(row=i, column=n, sticky=tk.W+tk.E)
        n+=1
    i+=1

tk.mainloop()


wie ihr seht habe ich eine tabelle erstellt. im grunde ist es nicht schwierig aber ich komme einfach nicht dahinter.
ich will jetzt in dieser tabelle, die einzelnen kästchen mit einer bedingung versehen. also, dass meinetwegen in dem ersten nur a,b und c stehen darf. ich hoffe ihr versteht mein problem und ich hoffe , dass ihr mir ein paar tipps geben könnt.
schon mal danke

gruß spaceboy
BlackJack

Beitragvon BlackJack » Sonntag 3. Juni 2007, 19:58

Bei der Liste mit den Zeilenbeschriftungen fehlt am Anfang ein leerer Eintrag. Ausserdem kann man `i` und `n` mit `enumerate()` erzeugen lassen, dann spart man sich das manuelle hochzählen.

Code: Alles auswählen

def main():
    master = tk.Tk()
   
    columnheaders = ['   ', 'Spalte 1', 'Spalte 2', 'Spalte 3']
    rowheaders = ['', 'Zeile 1', 'Zeile 2', 'Zeile 3', 'Zeile 4', 'Zeile 5']
   
    for i, row in enumerate(rowheaders):
        for n, column in enumerate(columnheaders):
            if i == 0:
                widget = tk.Label(master, text=column)
            elif n == 0:
                widget = tk.Label(master, text=row)
            else:
                widget = tk.Entry(master, background='white')
            widget['width'] = 20
            widget.grid(row=i, column=n, sticky=tk.W + tk.E)
   
    tk.mainloop()


Bei Deinem Problem kann vielleicht diese Klasse vom Effbot helfen:

http://effbot.org/zone/tkinter-entry-validate.htm

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder