2014-02-14 3 views
0

У меня есть 2 списка, бок о бок, и я бы хотел, чтобы у каждого была полоса прокрутки. Проблема, с которой я сталкиваюсь, заключается в том, что, когда списки не заполнены, они не отображаются, я могу видеть только полосу прокрутки.Tkinter Listbox & Scrollbar issues - изменение размера

Код, указанный ниже для одного списка. Когда я комментирую self.scrollbar.config и self.scrollbar.grid, я вижу свой список 20x10. Когда они вернутся в код, как показано ниже, я вижу только полосу прокрутки. Мне нужно ListBox оставаться фиксированного размера и заполнить в соответствии с остальной частью моей code..Screenshot: http://i.imgur.com/jQWg4d2.jpg

class Application(Frame): 
    def __init__(self, master=None): 
     Frame.__init__(self, master) 
     self.grid(sticky=N+S+E+W) 
     self.mainframe() 

    def mainframe(self): 
     self.lb = Listbox(self, width=20, height=10, bg='yellow', fg='blue') 
     self.scrollbar = Scrollbar(self.lb, orient=VERTICAL) 
     self.lb.config(yscrollcommand=self.scrollbar.set) 
     self.scrollbar.config(command=self.lb.yview) 

     self.lb.grid(row=0, column=0) 

     self.scrollbar.grid(column=2) 

ответ

3

Проблема в том, что вы храните скроллбар внутри списка, когда он должен быть внутри сам кадр.

self.scrollbar = Scrollbar(self, orient=VERTICAL) 

Вы должны также изменить, как это Сетчатая, чтобы положить его в колонке 1 (столбец непосредственно рядом с ListBox) и липкий его на север и юг:

self.scrollbar.grid(row=0, column=1, sticky=NS) 

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

+0

А, да, спасибо - и я исправил отступы! – codefail

Смежные вопросы