Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- class listview:
- def __init__(self,finestra,lista,bwidth=2,rlief = GROOVE):
- self.lists = []
- self.asdasd = []
- self.quadro1 = Frame(finestra)
- self.quadro1.pack(side = LEFT, expand = YES, fill = BOTH)
- for l in range(len(lista)):
- split = lista[l].split(',')
- self.frame = Frame()
- self.frame.pack(side=LEFT, expand=YES, fill=BOTH)
- self.t1 = Label(self.frame, text=split[0], borderwidth=bwidth, relief=rlief)
- self.t1.pack(fill=X)
- self.lb = Listbox(self.frame, width=int(split[1]), borderwidth=0, selectborderwidth=0,relief=FLAT, exportselection=FALSE, selectmode=MULTIPLE ,bg='white')
- self.lists.append(self.lb)
- self.lb.pack(expand = YES, fill = BOTH)
- self.lb.bind('<Button-1>', lambda e, s=self: s._seleziona(e.y))
- Label(finestra, borderwidth=bwidth, relief=rlief).pack(fill=X)
- sb = Scrollbar(finestra, orient=VERTICAL, command=self._scroll)
- sb.pack(expand=YES, fill=Y)
- self.lists[0]['yscrollcommand']=sb.set
- def _seleziona(self, y):
- row = self.lists[0].nearest(y)
- self.nosel(0, END)
- self.selset(row)
- return 'break'
- def _aggiungi(self,cosa,index = END):
- split = cosa.split('|')
- for i in range(len(split)):
- self.lists[i].insert(index,split[i])
- def _elimina(self, primo, fine=None):
- for l in self.lists:
- l.delete(primo, fine)
- def _lb(self,sep='\n'):
- ret = []
- for i in range(len(self.lists)-1):
- if self._legtesto(i)[0] != '':
- ret.append(self._legtesto(i))
- return ret
- def _scroll(self, *args):
- for l in self.lists:
- l.yview(*args)
- def nosel(self, primo, fine=None):
- for l in self.lists:
- l.selection_clear(primo, fine)
- def selset(self, primo, fine=None):
- for l in self.lists:
- l.selection_set(primo, fine)
- def _legtesto(self, primo, fine=None):
- result = []
- for l in self.lists:
- result.append(l.get(primo,fine))
- return result
- def _index(self):
- try:
- return self.lists[0].curselection()[0]
- except:
- return -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement