ich komme mal gleich zum 'sachlichen'
ich habe mit tkinter bereits ene csv datei ausgelesen und verschiedene spalten in eine Tabelle geschrieben
Code: Alles auswählen
from Tkinter import *
master = Tk()
v = StringVar()
class MultiListbox(Frame):
def __init__(self, master, lists):
Frame.__init__(self, master)
self.lists = []
for l,w in lists:
frame = Frame(self); frame.pack(side=LEFT, expand=YES, fill=BOTH)
Label(frame, text=l, borderwidth=1, relief=RAISED).pack(fill=X)
lb = Listbox(frame, width=w, borderwidth=0, selectborderwidth=0,
relief=FLAT, exportselection=FALSE)
lb.pack(expand=YES, fill=BOTH)
self.lists.append(lb)
lb.bind('<B1-Motion>', lambda e, s=self: s._select(e.y))
lb.bind('<Button-1>', lambda e, s=self: s._select(e.y))
lb.bind('<Leave>', lambda e: 'break')
lb.bind('<B2-Motion>', lambda e, s=self: s._b2motion(e.x, e.y))
lb.bind('<Button-2>', lambda e, s=self: s._button2(e.x, e.y))
frame = Frame(self); frame.pack(side=LEFT, fill=Y)
Label(frame, borderwidth=1, relief=RAISED).pack(fill=X)
sb = Scrollbar(frame, orient=VERTICAL, command=self._scroll)
sb.pack(expand=YES, fill=Y)
self.lists[0]['yscrollcommand']=sb.set
def _select(self, y):
row = self.lists[0].nearest(y)
self.selection_clear(0, END)
self.selection_set(row)
return 'break'
def _button2(self, x, y):
for l in self.lists: l.scan_mark(x, y)
return 'break'
def _b2motion(self, x, y):
for l in self.lists: l.scan_dragto(x, y)
return 'break'
def _scroll(self, *args):
for l in self.lists:
apply(l.yview, args)
def curselection(self):
return self.lists[0].curselection()
def delete(self, first, last=None):
for l in self.lists:
l.delete(first, last)
def get(self, first, last=None):
result = []
for l in self.lists:
result.append(l.get(first,last))
if last: return apply(map, [None] + result)
return result
def index(self, index):
self.lists[0].index(index)
def insert(self, index, *elements):
for e in elements:
i = 0
for l in self.lists:
l.insert(index, e[i])
i = i + 1
def size(self):
return self.lists[0].size()
def see(self, index):
for l in self.lists:
l.see(index)
def selection_anchor(self, index):
for l in self.lists:
l.selection_anchor(index)
def selection_clear(self, first, last=None):
for l in self.lists:
l.selection_clear(first, last)
def selection_includes(self, index):
return self.lists[0].selection_includes(index)
def selection_set(self, first, last=None):
for l in self.lists:
l.selection_set(first, last)
if __name__ == '__main__':
meineDatei=raw_input('Datei:')
import csv
reader=csv.reader(open(meineDatei, 'rb'), delimiter=';')
master.geometry('1366x768')
Label(master, text='Überschrift').pack()
mlb = MultiListbox(master, (('1', 30), ('2', 5), ('3', 30), ('4', 5), ('5', 1), ('6', 5), ('7', 10), ('8', 5)))
##for i in range (130):
tmp=[]
for row in reader:
#print row
mlb.insert(END,(str(row[6]),
str(row[1]),
str(row[7]),
str(row[2]),
str(row[14]),
str(row[16]),
str(row[22]),
#hier soll ein Radiobutton hin
))
tmp.append(row)
mlb.pack(expand=YES,fill=BOTH)
f = open('test.csv','w')
f.write('1;2;3;4;5;6;7;8')
print tmp
for row in tmp:
f.write('\n' + row[6] + ';' + row[1] + ';' + row[7] + ';' + row[2] + ';' + row[14] + ';' + row[16] + ';' + row[22] )
f.close()
master.mainloop()
Grüße Popelnase