Python Tkinter列表框宽度干扰滚动条

Python Tkinter列表框宽度干扰滚动条,python,tkinter,listbox,scrollbars,Python,Tkinter,Listbox,Scrollbars,我有一个问题,我有一个滚动框显示几行,每行大约200个字符宽。我把宽度设置为125,这是不够的。然而,当我把它撞过大约175时,我的滚动条消失了。如果我有它在或低于100它滚动通过所有的数据,但是一个非常小的窗口。我想窗口的大小是帧和滚动通过所有的代码。 代码: 您在对齐过程中犯了两个错误 首先,在定义listbox时,应删除width参数,以便它可以根据其父项的大小进行调整: data_scrollable = tk.Listbox(data_frame,

我有一个问题,我有一个滚动框显示几行,每行大约200个字符宽。我把宽度设置为125,这是不够的。然而,当我把它撞过大约175时,我的滚动条消失了。如果我有它在或低于100它滚动通过所有的数据,但是一个非常小的窗口。我想窗口的大小是帧和滚动通过所有的代码。 代码:



您在对齐过程中犯了两个错误

  • 首先,在定义listbox时,应删除
    width
    参数,以便它可以根据其父项的大小进行调整:

    data_scrollable = tk.Listbox(data_frame, 
                                 font=tkFont.Font(family="Courier", size=10),
                                 selectbackground="gray", selectmode=tk.SINGLE,
                                 yscrollcommand=scrollbar_y.set,
                                 xscrollcommand=scrollbar_x.set)
    
  • 其次,在对齐列表框的框架后,必须为相应的行和列赋予非零权重,以允许列表框展开:

    data_scrollable.grid(row=0, column=0, sticky='nsew')
    data_frame.columnconfigure(0, weight=1)
    data_frame.rowconfigure(0, weight=1)
    
见:

data_scrollable.grid(row=0, column=0, sticky='nsew')
data_frame.columnconfigure(0, weight=1)
data_frame.rowconfigure(0, weight=1)