Ширина столбца с использованием tkinter в python - PullRequest
0 голосов
/ 02 апреля 2020

для моего GUI Я хочу использовать сетку с 6 столбцами. Размер стола установлен. Как мне заполнить ширину сетки столбцами? Вы можете установить размер столбцов? Я нашел только padx, чтобы изменить отступы, но не фактический размер столбцов. На данный момент это должно работать на холсте. Это вообще возможно?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Если вы установили размер таблицы, вы можете настроить столбцы на 1/6 ширины окна в целом. Хитрость заключается в том, чтобы присвоить каждому столбцу одинаковые ненулевые значения weight и использовать параметр uniform. Параметр uniform принимает строку, и все столбцы с одинаковым значением будут иметь одинаковую ширину.

Если вы запустите этот код, обратите внимание, как вы можете изменить размер окна, и столбцы также автоматически изменят размер.

import tkinter as tk
import sys

root = tk.Tk()
root.geometry("600x400")

columns = []
for i in range(6):
    frame = tk.Frame(root, borderwidth=1, relief="raised", background="bisque")
    columns.append(frame)

root.grid_rowconfigure(0, weight=1)
for column, f in enumerate(columns):
    f.grid(row=0, column=column, sticky="nsew")
    root.grid_columnconfigure(column, weight=1, uniform="column")

root.mainloop()

screenshot of small window screenshot of large window

0 голосов
/ 02 апреля 2020

Имея только переданную информацию, я бы порекомендовал вам следующее:

Сетка размещает ваши объекты. Это не стол.

Если вы работаете с сеткой здесь. Самое простое - установить ширину объекта, который вы помещаете в нужную сетку. Например:

Если вы добавляете метку, установите метку на желаемую ширину. Эта метка будет отображаться в сетке с ее шириной и высотой.

Если вы хотите отобразить таблицу. Или даже лучше загрузить таблицу из базы данных. Я бы порекомендовал Treeview. Это хорошо для дизайна позволяет мультиселект и его легко заполнить, и у вас нет проблем с макетом :)

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