Как установить определенное количество строк и столбцов сетки Tkinter?
Поэтому я пытаюсь создать игру в блэкджек для своей курсовой работы A Level (ну, я на начальных этапах), и я использую сетку Tkinter, чтобы расположить все мои виджеты.
Я хочу сетку с 20 столбцами и 10 строками. Однако в моей программе я использую только столбцы с 1 по 18 и строки с 1 по 18.
Как мне сообщить Tkinter, что я все еще хочу, чтобы столбцы 0 и 19 и строки 0 и 9 были пустыми, чтобы он не думал, что моя сетка должна иметь только 9 строк и 19 столбцов?
Допустим, у меня есть это в качестве основной программы:
from tkinter import *
window=Tk()
window.pack()
l=Label(window, text='Label1').grid(column=8, row=1)
l2=Label(window, text='Label2').grid(column=1, row=8)
Таким образом, в этой программе сетка будет думать, что ей нужно всего 9 столбцов и 9 строк, но я на самом деле хочу, чтобы столбец № 10 (9) был пустым, а строка № 10 (9) - пустым.
Пожалуйста, помогите, я должен закончить эту программу через две недели.
1 ответ
По умолчанию пустая строка / столбец имеет высоту / ширину 0 (ноль), и вы ее не видите (но она существует).
Вы можете установить минимальный размер строки или столбца (т.е. номер строки / столбца 9)
window.rowconfigure(9, {'minsize': 30})
window.columnconfigure(9, {'minsize': 30})
# or
window.rowconfigure(9, minsize=30)
window.columnconfigure(9, minsize=30)
Или вы можете поставить Label
без текста или с пробелами в качестве текста.
import tkinter as tk
window = tk.Tk()
l1 = tk.Label(window, text='Label1')
l1.grid(column=8, row=1)
l2 = tk.Label(window, text='Label2')
l2.grid(column=1, row=8)
# add empty label in row 0 and column 0
l0 = tk.Label(window, text=' ')
l0.grid(column=0, row=0)
# set minimal size for row 9 and column 9
window.rowconfigure(9, {'minsize': 30})
window.columnconfigure(9, {'minsize': 30})
window.mainloop()