Описание проблемы:
Я совершенно не знаком с разработкой GUI на Tkinter. Переходя к проблеме, у меня есть главное окно, и оно разделено на два разных фрейма: верхний и нижний. Я хочу переместить только верхнюю рамку, когда перемещаю горизонтальную полосу прокрутки. полоса прокрутки движется, но содержимое не перемещается вместе с ней.
Что я пробовал: следующая процедура: главное окно -> верхний фрейм (в основном окно) -> холст (на верхнем фрейме) -> прокручиваемый фрейм (на холсте) -> 10 различных фреймов
полоса прокрутки соединена с верхним фреймом (установлен на холст xview).
хотя полоса прокрутки установлена, я снова добавил следующий код (код указан в конце)
размеры:
верхняя рамка - ширина = 5000, высота = 550, холст -w = 50000, h = 5500, (область прокрутки - (0,0,50000,5500)), прокручиваемый кадр - не определен, 10 кадров различий - w = 500, h = 400 (размер одного кадра),
размер нижней рамки - w = 400, высота = 400
кто-нибудь помогите пожалуйста. Уже 1 неделю ломаю себе голову.
Код:
from tkinter import *
from tkinter.ttk import *
top1 = tk.Tk()
top1.title("Output window")
fram1 =tk.Frame(top1,width=5000,height=550,bg = 'khaki1',relief=SUNKEN)
canvas = Canvas (fram1,width=50000,height=5500,bg = 'sky blue',scrollregion(0,0,50000,5500))
fram2 =ttk.Frame(top1,width=400,height=400,relief=SUNKEN)
scroll_bar_v = tk.Scrollbar(top1,orient='vertical')
scroll_bar_v.pack( side = RIGHT, fill = Y )
scroll_bar_h = Scrollbar(fram1,orient='horizontal')
scroll_bar_h.config(command = canvas.xview)
scroll_bar_h.pack( side = BOTTOM, fill = X )
left1= ttk.Frame(fram2, borderwidth=2, height = 400,width = 500,relief="sunken")
left2= ttk.Frame(fram2, borderwidth=2, height = 400,width = 500,relief="sunken")
left3= ttk.Frame(fram2, borderwidth=2, height = 400,width = 500,relief="sunken")
left1.pack(side = 'left',padx=10, pady=10)
left2.pack(side = 'left',padx=10, pady=10)
left3.pack(side = 'left',padx=10, pady=10)
scrollable_frame = tk.Frame(canvas, bg = 'khaki1')
scrollable_frame.pack(side = 'top',padx = 10,pady = 10)
for i in range(10):
left = tk.Frame(scrollable_frame, borderwidth=2, height = 400,width = 500,relief="sunken") # fram1 to canvas
left. pack(side = 'left',padx=10, pady=10)
l1 = tk.Label (left,text = i,font = ('Arial',20,'bold')).place(x = 50, y =30)
canvas.configure(xscrollcommand= scroll_bar_h.set,scrollregion=canvas.bbox("all"))
canvas.pack(fill = 'both')
fram1.pack(side = 'top')
fram2.pack(side = 'bottom')
top1.mainloop()