Python Проблема с полосой прокрутки tkinter и размером холста? - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь создать GUI, используя Tkinter, который использует полосу прокрутки, размер которой изменяется при изменении размера вашего окна. У меня есть следующий код:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("Results")
root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
nb = ttk.Notebook(root, width = root.winfo_screenwidth(), height = root.winfo_screenheight())
nb.grid(row = 1, column = 0, columnspan = root.winfo_screenwidth(), rowspan = root.winfo_screenheight() - 1, sticky = "NESW")
container = ttk.Frame(root)
canvas = Canvas(container)
scrollbar = ttk.Scrollbar(container, orient = "vertical", command = canvas.yview)
page1 = ttk.Frame(canvas)

page1.bind(
    "<Configure>",
    lambda e: canvas.configure(
        scrollregion = canvas.bbox("all")
    )
)

canvas.create_window((0,0), window = page1, anchor = "nw")

canvas.configure(yscrollcommand = scrollbar.set)

for i in range(50):
    titleLabel = Label(page1, text = i)
    titleLabel.grid(row = i, column = 0, columnspan = 100, sticky = "NS")

container.grid(row = 1, column = 0, columnspan = root.winfo_screenwidth(), rowspan = root.winfo_screenheight(), sticky = "NESW")
canvas.grid(row = 1, column = 0, columnspan = root.winfo_screenwidth(), rowspan = root.winfo_screenheight(), sticky = "NESW")
scrollbar.grid(row = 0, column = root.winfo_screenwidth(), columnspan = root.winfo_screenwidth(), rowspan = root.winfo_screenheight(), sticky = "NESW")

Grid.columnconfigure(root, 0, weight = 1)
Grid.rowconfigure(root, 0, weight = 1)
Grid.columnconfigure(canvas, 0, weight = 1)
Grid.rowconfigure(canvas, 0, weight = 1)
Grid.columnconfigure(page1, 0, weight = 1)
Grid.rowconfigure(page1, 0, weight = 1)

root.mainloop()

Мой результат выглядит странно по нескольким причинам:

  1. Когда я изменяю размер области моего окна, полоса прокрутки не ' • растянуть или сжать, чтобы приспособиться к этому размеру.
  2. «page1» не занимает все окно, несмотря на установку ширины для ширины экрана и высоты для высоты экрана.

Обе мои проблемы показаны на этой картинке ниже:

Two issues with the scrollbar and

Любая помощь в том, как решить эту проблему, будет высоко оценена!

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