Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.35 KB | None | 0 0
  1. from tkinter import *
  2.  
  3. class listview:
  4.     def __init__(self,finestra,lista,bwidth=2,rlief = GROOVE):
  5.         self.lists = []
  6.         self.asdasd = []
  7.         self.quadro1 = Frame(finestra)                                  
  8.         self.quadro1.pack(side = LEFT, expand = YES, fill = BOTH)
  9.         for l in range(len(lista)):
  10.             split = lista[l].split(',')
  11.             self.frame = Frame()
  12.             self.frame.pack(side=LEFT, expand=YES, fill=BOTH)
  13.             self.t1 = Label(self.frame, text=split[0], borderwidth=bwidth, relief=rlief)
  14.             self.t1.pack(fill=X)
  15.             self.lb = Listbox(self.frame, width=int(split[1]), borderwidth=0, selectborderwidth=0,relief=FLAT, exportselection=FALSE, selectmode=MULTIPLE ,bg='white')
  16.             self.lists.append(self.lb)
  17.             self.lb.pack(expand = YES, fill = BOTH)
  18.             self.lb.bind('<Button-1>', lambda e, s=self: s._seleziona(e.y))
  19.  
  20.         Label(finestra, borderwidth=bwidth, relief=rlief).pack(fill=X)
  21.         sb = Scrollbar(finestra, orient=VERTICAL, command=self._scroll)
  22.         sb.pack(expand=YES, fill=Y)
  23.         self.lists[0]['yscrollcommand']=sb.set
  24.  
  25.  
  26.     def _seleziona(self, y):
  27.         row = self.lists[0].nearest(y)
  28.         self.nosel(0, END)
  29.         self.selset(row)
  30.         return 'break'
  31.    
  32.     def _aggiungi(self,cosa,index = END):
  33.         split = cosa.split('|')
  34.         for i in range(len(split)):
  35.             self.lists[i].insert(index,split[i])
  36.  
  37.     def _elimina(self, primo, fine=None):
  38.         for l in self.lists:
  39.             l.delete(primo, fine)
  40.  
  41.     def _lb(self,sep='\n'):
  42.         ret = []
  43.         for i in range(len(self.lists)-1):
  44.             if self._legtesto(i)[0] != '':
  45.                 ret.append(self._legtesto(i))
  46.         return ret
  47.  
  48.     def _scroll(self, *args):
  49.         for l in self.lists:
  50.             l.yview(*args)
  51.            
  52.     def nosel(self, primo, fine=None):
  53.         for l in self.lists:
  54.             l.selection_clear(primo, fine)
  55.            
  56.     def selset(self, primo, fine=None):
  57.         for l in self.lists:
  58.             l.selection_set(primo, fine)
  59.  
  60.     def _legtesto(self, primo, fine=None):
  61.             result = []
  62.             for l in self.lists:
  63.                 result.append(l.get(primo,fine))
  64.                
  65.             return result
  66.  
  67.     def _index(self):
  68.         try:
  69.             return self.lists[0].curselection()[0]
  70.         except:
  71.             return -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement