我試圖創建一個垂直滾動框架來包含一些小部件。但是,當我將對象包裝到它中時,框架的大小適合其中某個小部件的最大寬度。如何讓滾動條堅持正確
我怎樣才能讓它堅持正確的?
我用下面的代碼:
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