Обычно вы используете рамку для организации виджета с полосой прокрутки, но рамка не прокручивается.Если вы хотите прокрутить область, содержащую другие виджеты, обычно нужно использовать холст.
Изучите это руководство: Шаблоны полос прокрутки Tkinter
Пакет может быть сложным в использовании, и единственный способ преодолеть это - продолжать попытки.Обычно легче увидеть, что вы делаете, если вы позволите различным кадрам иметь разные цвета bg.Также я позволил себе сменить некоторые имена ваших переменных, поскольку они не дают подсказки о том, что они из себя представляют или слишком похожи на другие имена, например.mainWindow
и MainWindow
.
Я добавил некоторые отступы для некоторых виджетов, чтобы они выглядели лучше.
from tkinter import *
root = Tk()
def create_main_window():
root.option_add('*tearOff', False)
root.title("Interface")
root.geometry('400x300+800+50')
menubar = Menu(root)
root.config(menu = menubar)
File = Menu(menubar)
About = Menu(menubar)
menubar.add_cascade(menu = File, label = "File")
menubar.add_cascade(menu = About, label = "About")
def create_container_frame():
container = Frame(root, bg='tan')
container.pack(fill="both", expand=True)
scroller = Scrollbar(container, orient="vertical")
scroller.pack(side="right", fill="y")
characterFrame = Frame(container, bd=2, relief="sunken", bg='thistle')
characterFrame.pack(side="left", fill='y', padx=(10,0), pady=10)
character_button = Button(characterFrame, text ="Characters")
character_button.pack(padx=10, pady=(10,0))
Label(characterFrame, text ="Test1").pack()
Label(characterFrame, text ="Test2").pack()
planetFrame = Frame(container ,bd=2, relief="sunken", bg='khaki')
planetFrame.pack(side="left", fill='both', expand=True, padx=10, pady=10)
Label(planetFrame, text="Test1").pack(pady=(10,0))
Label(planetFrame, text="Test2").pack()
create_main_window()
create_container_frame()
root.mainloop()
Это макет, к которому вы стремитесь?