Как установить определенное количество строк и столбцов сетки 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()
Другие вопросы по тегам