Проблемы с прокруткой Tkinter - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь поставить полосу прокрутки в моем списке, но потому что элементы, которые я вставляю, очень длинные, но полоса прокрутки не прокручивается полностью.Если вы запустите приведенный ниже код, вы увидите, о чем я говорю, и заметите, что горизонтальная полоса прокрутки не может прокручиваться полностью вправо.Кто-нибудь знает, как я могу это исправить?Та же проблема возникает для вертикальной полосы прокрутки при добавлении еще нескольких записей.

import tkinter

lista=[11111111111111111111111111111111111111111111111,22222222222222222222222222222222222222222222222222,
       33333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444467,4444444444444444,
       5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556]
master = tkinter.Tk()
master.geometry("400x250")
frame = tkinter.Frame(master, borderwidth=1, highlightthickness=1,
                                                  highlightbackground="black", highlightcolor="black")
frame.place(bordermode=tkinter.INSIDE, height=240, width=300, y=0, x=30)
LIST = tkinter.Listbox(frame)
LIST.place(bordermode=tkinter.INSIDE, height=237, width=296)

Scroll_Bar_x = tkinter.Scrollbar(frame, orient=tkinter.HORIZONTAL)
Scroll_Bar_x.config(command=LIST.xview)
Scroll_Bar_x.pack(fill=tkinter.X, side=tkinter.BOTTOM)
LIST.config(xscrollcommand=Scroll_Bar_x.set)
Scroll_Bar_y = tkinter.Scrollbar(frame, orient=tkinter.VERTICAL)
Scroll_Bar_y.config(command=LIST.yview)
Scroll_Bar_y.pack(fill=tkinter.Y, side=tkinter.RIGHT)
LIST.config(yscrollcommand=Scroll_Bar_y.set)
for x in lista:
    LIST.insert(0, x)

master.mainloop()

1 Ответ

0 голосов
/ 13 ноября 2018

У вас проблемы с перекрытием полос прокрутки в размещенном списке.Большую часть времени place() это не то, что вы хотите использовать.

Вместо этого попробуйте grid(), это поможет сохранить все в порядке и правильном размере.

import tkinter

lista=[11111111111111111111111111111111111111111111111,22222222222222222222222222222222222222222222222222,
       33333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444467,4444444444444444,
       5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556]
master = tkinter.Tk()
master.geometry("400x250")
frame = tkinter.Frame(master, height=240, width=300, borderwidth=1, highlightthickness=1, highlightbackground="black", highlightcolor="black")
frame.grid(row=0, column=0)
frame.rowconfigure(0, weight=1)
frame.columnconfigure(0, weight=1)
LIST = tkinter.Listbox(frame)
LIST.grid(row=0, column=0, sticky="nsew")
frame.grid_propagate(False)

Scroll_Bar_x = tkinter.Scrollbar(frame, orient=tkinter.HORIZONTAL)
Scroll_Bar_x.config(command=LIST.xview)
Scroll_Bar_x.grid(row=1, column=0, sticky="ew")
LIST.config(xscrollcommand=Scroll_Bar_x.set)
Scroll_Bar_y = tkinter.Scrollbar(frame, orient=tkinter.VERTICAL)
Scroll_Bar_y.config(command=LIST.yview)
Scroll_Bar_y.grid(row=0, column=1, sticky="ns")
LIST.config(yscrollcommand=Scroll_Bar_y.set)
for x in lista:
    LIST.insert(0, x)

master.mainloop()

Результаты:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...