Совместите ширину записей с заголовками столбцов. - PullRequest
0 голосов
/ 23 апреля 2020

Я создал таблицу, которая состоит из заголовков столбцов (фамилия, имя, ..) и записей. Поскольку в таблице несколько строк, я добавил полосу прокрутки с правой стороны таблицы.

Следующая проблема: ширина полей ввода не соответствует ширине заголовков столбцов. В результате отображаются только 3 столбца вместо 5. Конечно, вы можете изменить ширину отдельных записей вручную. Но результат выглядит не очень красиво. Вместо этого ширины записей каждого столбца должны быть выровнены с шириной заголовков столбцов.

Кто-нибудь из вас знает, как реализовать это для следующего минимального примера:

from tkinter import *

root = Tk()
Label(root, text = "Name").grid(row = 0, column = 0)
Label(root, text = "Vorname").grid(row = 0, column = 1)
Label(root, text = "Land").grid(row = 0, column = 2)
Label(root, text = "Stadt").grid(row = 0, column = 3)
Label(root, text = "Adresse").grid(row = 0, column = 4)

container = Frame(root)
canvas = Canvas(container, height = 190)
scrollbar = Scrollbar(container, orient="vertical", command=canvas.yview)
scrollable_frame = Frame(canvas)
scrollable_frame.bind(
    "<Configure>",
    lambda e: canvas.configure(
        scrollregion=canvas.bbox("all")
    )
)
canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
canvas.configure(yscrollcommand=scrollbar.set)
for i in range(20): # number of rows
    for j in range(5): # number of columns
        Entry(scrollable_frame).grid(row = i + 1  , column = j)

container.grid(row = 1, column = 0, columnspan = 5)
canvas.pack(side="left", fill="both", expand=True)
scrollbar.pack(side="right", fill="y")

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