我试图创建一个垂直滚动框架来包含一些小部件。但是,当我将对象包装到它中时,框架的大小适合其中某个小部件的最大宽度。如何让滚动条坚持正确
我怎样才能让它坚持正确的?
我用下面的代码:
RadioList.py
class RadioList(Frame):
def __init__(self, parent, *args, **kwargs):
Frame.__init__(self, parent)
self.pack()
self._frame = Frame(self, *args, **kwargs)
self._frame.pack(fill=BOTH, expand=YES)
self._var = IntVar()
# self._var = StringVar('a')
def add(self, text, value):
rb = Radiobutton(self._frame,
text=text,
value=value,
variable=self._var,
anchor=W,
# width=200
)
# rb.grid()
rb.pack(fill=X)
main.py:
class App(Frame):
def __init__(self, parent=None):
Frame.__init__(self, parent)
# self.geometry('400x300')
self.grid()
self.label = Label(self, text="hello world")
self.label.grid()
container = Frame(self)
container.grid(row=1, columnspan=3)
vframe = VerticalScrolledFrame(container)
# vframe.pack(fill=BOTH);
# vframe.pack()
# vframe.pack(side=LEFT, anchor=W)
vframe.grid()
rbl = RadioList(vframe.interior, bg="white")
for x in range(100, 150):
i = x + 1
t = n2w(i)
rbl.add(t, i)
rbl.grid(columnspan=3)
滚动条代码是从这里取:https://stackoverflow.com/a/16198198/145682
完整代码可以在这里找到:https://github.com/deostroll/pytk
您需要调用帧的'.pack_propagate(0)'来停止调整大小以适应其包含的小部件。 –
您是在问如何让滚动条粘到正确的位置,还是在问如何防止窗口缩小以适应其内容? –
@BryanOakley不是正在缩小的“容器”吗? – deostroll