ttk treeview не заполняет направление 'y' - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь поместить виджет Treeview с некоторой датой в рамку с полосой прокрутки, и я хочу, чтобы древовидная структура заполнялась вертикально ... Но все, что я пытаюсь (либо с пакетом (fill = 'y'), либо с сеткой (sitcky)= 'ns') он не расширяется в направлении 'y'.

Вот код, который я пытаюсь использовать:

class TVTEf2(ttk.Frame):
  def __init__(self,parent):
    ttk.Frame.__init__(self,parent)
    # self.grid(sticky='ns')
    self.pack(anchor='w',fill='both')
    self.initialize()
  def initialize(self):
   self.tree = ttk.Treeview(self,selectmode='browse')
   self.vsb = ttk.Scrollbar(self,orient="vertical",command=self.tree.yview)
   self.tree.configure(yscrollcommand=self.vsb.set)
   self.columns = ("Ligne","Voie","Support","Date SPOT","Statut")
   self.csize = [50,50,50,75,50]
   self.tree["columns"] = self.columns
   self.tree['show'] = 'headings'
   self.tree.insert("",'end',text="L1",values=(format(570000,'06.0f'),"V1",'323/01','01/01/2018',"Non fait"))
   self.tree.insert("",'end',text="L2",values=(format(570000,'06.0f'),"V1",'323/03','01/01/2018',"Non fait"))
   self.tree.insert("",'end',text="L3",values=(format(570000,'06.0f'),"V1",'323/05','01/01/2018',"Non fait"))
   self.tree.insert("",'end',text="L4",values=(format(570000,'06.0f'),"V2",'323/08','01/01/2018',"Non fait"))
   self.vsb.pack(anchor='e', fill='y', side='left')
   self.tree.pack(side='left',fill='both')
   # self.vsb.grid(column=1,row=0,sticky='ns')
   # self.tree.grid(column=0,row=0,sticky='ns')
   for k in range(len(self.columns)):
    col =self.columns[k]
    sz = self.csize[k]
    self.tree.column(col,minwidth=0,width=sz, stretch='no')

   for col in self.columns:
       self.tree.heading(col, text=col, command=lambda _col=col: \
                 treeview_sort_column(self.tree, _col, False))
if __name__ == "__main__":
 root = Tkinter.Tk()
 root.rowconfigure(0, weight=0)
 root.columnconfigure(0, weight=1)
 root.title('')
 pad=3
 root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
 app = TVTEf2(root)
 app.mainloop()

Вид дерева, который я получаю, очень мал ...

Если у кого-то есть идеи ... Большое спасибо

1 Ответ

0 голосов
/ 30 ноября 2018

Ну, не совсем то, что я хотел, но я просто "обманул" с параметром "высоты" виджета Treeview:

def initialize(self):
   self.tree = ttk.Treeview(self,selectmode='browse',height = 36)
                                                   #^^^^^^^^^^^^

Он все еще не прилипает к дну, но, по крайней мере, он имеет правильныйфиксированный размер для данного разрешения экрана (почти не очень хорошее решение)

...