Я пытаюсь создать полосу прокрутки для окна, созданного в моем gui, используя tk.Toplevel. Кадр в настоящее время часто заполняется длинными сетками строк, которые добавляются к одной покупке. Остальная часть GUI позволяет пользователю писать в ряд полей, которые отображаются один за другим с использованием сетки.scrollbar для рамки меток в tkinter
Эти данные могут выглядеть примерно так:
SADAS sfafaf fsaafads fdsafsf dfsfdsf fssfs fsfsfsfs fsfsfs sfsfsfs fsssfsfsf
SADAS sfafaf fsaafads fdsafsf dfsfdsf fssfs fsfsfsfs fsfsfs sfsfsfs fsssfsfsf
SADAS sfafaf fsaafads fdsafsf dfsfdsf fssfs fsfsfsfs fsfsfs sfsfsfs fsssfsfsf
Я использовал этот пост: Adding a scrollbar to a group of widgets in Tkinter как руководство, чтобы добраться до места, где я сейчас. В настоящее время, когда я открываю окно, полоса прокрутки появляется с левой стороны. Как только я добавляю строку, GUI замерзает, и я должен закрыть его.
Вот соответствующий код:
class data_popup():
def __init__(self, parent):
self.parent = parent
self.top = tk.Toplevel(parent)
self.top.title("Current Data")
self.top.protocol('WM_DELETE_WINDOW', self.stop_close)
#Frames
self.header_labels_frame = tk.Frame(self.top)
self.header_labels_frame.pack(side = tk.TOP)
self.data_frame_1 = tk.Frame(self.top)
self.data_frame_1.pack(side = tk.BOTTOM)
self.header_labels_list = []
self.data_canvas = tk.Canvas(self.data_frame_1, borderwidth = 0)
self.data_frame = tk.Frame(self.data_canvas)
self.scrollbar = tk.Scrollbar(self.data_frame, orient = 'vertical', command = self.data_canvas.yview)
self.data_canvas.configure(yscrollcommand = self.scrollbar.set)
self.scrollbar.pack(side = 'right', fill = 'y')
self.data_canvas.pack(side = "bottom", fill = 'both', expand = True)
self.data_canvas.create_window((4,4), window = self.data_frame, anchor = 'nw', tags = "self.frame")
self.data_frame.bind("<Configure>", self.myfunction)
self.create_header()
self.data_row_list = list()
def myfunction(self, event):
self.data_canvas.configure(scrollregion=self.data_canvas.bbox("all"))
Отступ кода неверен. –
_ «Как только я добавляю строку, GUI замерзает, и я должен ее закрыть». _ Вы не используете «сетку» и «пакет» в том же окне и/или кадре, не так ли? Это заставляет Tkinter вводить бесконечный цикл. – Kevin
Отступы в моем редакторе нормальны, он просто скопирован неправильно. Я починю это. – DustySack