Я добавляю несколько виджетов в рамку, которая находится в tix.NoteBook
. Когда в окно помещается слишком много виджетов, я хочу использовать полосу прокрутки, поэтому я помещаю tix.ScrolledWindow
внутри этого фрейма и вместо этого добавляю свои виджеты в это ScrolledWindow.
Проблема в том, что при использовании менеджера геометрии grid () появляется полоса прокрутки, но она не работает (полоса перетаскивания занимает всю полосу прокрутки).
from Tkinter import *
import Tix
class Window:
def __init__(self, root):
self.labelList = []
self.notebook = Tix.NoteBook(root, ipadx=3, ipady=3)
self.notebook.add('sheet_1', label="Sheet 1", underline=0)
self.notebook.add('sheet_2', label="Sheet 2", underline=0)
self.notebook.add('sheet_3', label="Sheet 3", underline=0)
self.notebook.pack()
#self.notebook.grid(row=0, column=0)
tab1=self.notebook.sheet_1
tab2=self.notebook.sheet_2
tab3=self.notebook.sheet_3
self.myMainContainer = Frame(tab1)
self.myMainContainer.pack()
#self.myMainContainer.grid(row=0, column=0)
scrwin = Tix.ScrolledWindow(self.myMainContainer, scrollbar='y')
scrwin.pack()
#scrwin.grid(row=0, column=0)
self.win = scrwin.window
for i in range (100):
self.labelList.append((Label(self.win)))
self.labelList[-1].config(text= "Bla", relief = SUNKEN)
self.labelList[-1].grid(row=i, column=0, sticky=W+E)
root = Tix.Tk()
myWindow = Window(root)
root.mainloop()
Всякий раз, когда я меняю хотя бы один из менеджеров геометрии с pack()
на grid()
, возникает проблема. (На самом деле, я бы предпочел использовать grid()
для всех контейнеров.)
Когда я не использую виджет NoteBook, проблема также не возникает. Все остальные примеры здесь, похоже, основаны на pack().
Есть идеи?
Большое спасибо,
Сано