Я намерен использовать ttk.frame, чтобы содержать сетку текстовых меток размером 10x10 с одной ячейкой, замененной меткой изображения. Для удобства я оставил все текстовые метки пустыми в опубликованном коде.
Когда я рисую метки с помощью сетки, я обнаруживаю, что ячейка с меткой изображения слегка расширяется - как будто изображение не расширяется. поместился фрагмент снимка экрана.
В результате одна строка и один столбец оказались больше остальных.
Код: Выделить всё
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('650x768')
frame = ttk.Frame()
frame=ttk.Frame(root)
frame.pack(expand=True, fill='both', side='left')
# iterate thru the cells populating each with a blank text label
for row in range(20):
frame.grid_rowconfigure(row, weight=1)
for column in range (20):
frame.grid_columnconfigure(column, weight=1)
label = tk.Label(frame, borderwidth=1, relief='solid', anchor='center', bg='lightgrey')
label.grid(column=column, row=row, sticky="nsew")
# draw the image label at grid coord (3,3)
image = tk.PhotoImage(file='./resources/image_file.png')
label = ttk.Label(frame, image=image, anchor='center')
label.grid(column=3, row=3)
root.mainloop()
Я попробовал изменить настройки планшета и iPad на этикетке и рамке.
Я старался использовать меньше столбцов и строк (5x5 и 10x10 вместо 20x20). Это изменение приводит к увеличению размера ячеек, поскольку размеры кадра остаются постоянными. После этого метка изображения занимала внутри ячейки еще меньше места, но ячейка все равно немного расширялась. Изображение довольно маленькое. Вы можете видеть, что серый цвет фона заполняет ячейку вокруг метки изображения. Я предполагаю, что это означает, что метка изображения должна подходить.
Я уверен, что упускаю что-то простое, но я долго искал и не нашел решения. .
Подробнее здесь: https://stackoverflow.com/questions/788 ... on-a-label