Seite 1 von 1

Bedingungen

Verfasst: Sonntag 3. Juni 2007, 18:46
von spaceboy
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

Verfasst: Sonntag 3. Juni 2007, 19:58
von BlackJack
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