tkinter - tabelle

Fragen zu Tkinter.
Antworten
rogen

Samstag 20. September 2003, 17:39

ich bin dabei eine tabelle in tk zu schreiben.

hier mein code

die for schreife zeichnet die tabelle
das problem ist das ich die zeilen nicht zerstören kann.

wie kann ich alles zellen im frame zerstören und dann wieder zeichnen.

Code: Alles auswählen

from Tkinter import *
from datenbank import *

global scroll
scroll = 0

class tabel:
	
	HIGHLIGHT ="red"
	UNSELECTET ="#FFFFFF"
	def __init__(self,frame,zeile,spalte,daten,id):
		"eine Zelle erzeugen"
		self.zelle = Label(frame,text=daten,bg="white",width=10,border=2)
		self.zelle.grid(row=zeile,column=spalte)
		self.zelle.bind("<ButtonRelease-1>",self.anz)
		self.zelle.bind("<Enter>",self.on_enter)
		self.zelle.bind("<Leave>",self.on_leave)
		self.id = id
		
	def on_leave(self,event):
		event.widget["bg"] = tabel.UNSELECTET
	
	def on_enter(self,event):
		event.widget["bg"] = tabel.HIGHLIGHT
	
	def anz(self,event):
		print self.id
		
nummer = 4
wert = 0

tab = tabel
zeit1 = zeit()


frame = Tk()


def unten():
	global scroll
	scroll = scroll + 1
	print scroll
	start()
	
def oben():
	global scroll
	scroll = scroll - 1
	print "ok"
	print scroll
	start()


ob = Button(frame,text="unten",command=unten)
ob.grid(row=20,column=20)

un = Button(frame,text="oben",command=oben)
un.grid(row=10,column=20)

wert = zeit1.show('adresseid',nummer)

print "---------------------"
print len(wert)
print "---------------------"

def start():
	zahler = 0
	for a in range(3):
		#print a
		if zahler+scroll < len(wert):
			print "--------------------------------"
			tab(frame,zahler,0,wert[zahler+scroll][2],wert[zahler][0])
			tab(frame,zahler,1,wert[zahler+scroll][3],wert[zahler][0])
			tab(frame,zahler,2,wert[zahler+scroll][5],wert[zahler][0])
			tab(frame,zahler,3,wert[zahler+scroll][4],wert[zahler][0])
		zahler = zahler +1 
		print zahler

start()
mainloop()
rogen

Samstag 20. September 2003, 19:43

ich überzeichne einfach jedesmal die tabelle

Code: Alles auswählen

from Tkinter import *
from datenbank import *

global scroll
scroll = 0

class tabel:
	
	HIGHLIGHT ="red"
	UNSELECTET ="#FFFFFF"
	def __init__(self,frame,zeile,spalte,daten,id):
		"eine Zelle erzeugen"
		self.zelle = Entry(frame,bg="white",width=10,border=1)
		self.zelle.insert(0,daten)
		self.zelle.grid(row=zeile,column=spalte)
		self.zelle.bind("<ButtonRelease-1>",self.anz)
		self.zelle.bind("<Enter>",self.on_enter)
		self.zelle.bind("<Leave>",self.on_leave)
		self.id = id
		
	def on_leave(self,event):
		event.widget["bg"] = tabel.UNSELECTET
	
	def on_enter(self,event):
		event.widget["bg"] = tabel.HIGHLIGHT
	
	def anz(self,event):
		print self.id
		
nummer = 2
wert = 0

tab = tabel
zeit1 = zeit()


frame = Tk()


def unten():
	global scroll
	scroll = scroll + 1
	print scroll
	start()
	
def oben():
	global scroll
	scroll = scroll - 1
	print "ok"
	print scroll
	start()


ob = Button(frame,text="unten",command=unten)
ob.grid(row=3,column=5)

un = Button(frame,text="oben",command=oben)
un.grid(row=4,column=5)

wert = zeit1.show('adresseid',nummer)

print "---------------------"
print len(wert)
print "---------------------"

def start():
	zahler = 0
	for a in range(3):
		zerst1 = Label(frame,text="",width=10)
		zerst1.grid(row=a,column=0)
		zerst2 = Label(frame,text="",width=10)
		zerst2.grid(row=a,column=1)
		zerst3 = Label(frame,text="",width=10)
		zerst3.grid(row=a,column=2)
		zerst4 = Label(frame,text="",width=10)
		zerst4.grid(row=a,column=3)
		
		
	zahler = 0
	for a in range(3):
		
		#print a
		if zahler+scroll < len(wert):
			tab(frame,zahler,0,wert[zahler+scroll][2],wert[zahler][0])
			tab(frame,zahler,1,wert[zahler+scroll][3],wert[zahler][0])
			tab(frame,zahler,2,wert[zahler+scroll][5],wert[zahler][0])
			tab(frame,zahler,3,wert[zahler+scroll][4],wert[zahler][0])
		zahler = zahler +1 
		print zahler

start()
mainloop()
Antworten