Функция сетки не работает для меток с изображениями в tkinter

#python #tkinter

#python #tkinter

Вопрос:

Я новичок в Tkinter и испытываю трудности с менеджером геометрии сетки. Я пытался переместить свою метку с изображением в 1-й столбец окна. Но независимо от того, сколько столбцов я набираю, оно всегда остается в самой верхней левой части окна. Пожалуйста, посоветуйте мне по этому вопросу. Ниже приведен код:

 import tkinter as tk
from PIL import ImageTk,Image

screen = tk.Tk()
screen.title("Login")
screen.geometry("2560x1600")
background = ImageTk.PhotoImage(Image.open("D:StRaNgEBackground.jpg"))
background_label = tk.Label(screen, image = background)
background_label.place(x = 0, y = 0, relwidth = 1, relheight = 1)

logo = ImageTk.PhotoImage(Image.open("D:StRaNgElogo2.jpg"))
lbl1 = tk.Label(screen, image=logo, relief = "solid", bd = 10, width = 1000, bg = "white")
lbl1.grid(row = 0, column = 1)        #This is not working

screen.mainloop()
 

Комментарии:

1. Номера строк / столбцов относятся к другим элементам сетки в том же контейнере. Поскольку вы использовали только .grid() этот один элемент, они совершенно бессмысленны.

2. Это потому, что в столбце 0 ничего нет, поэтому ширина равна нулю. Однако вы можете использовать screen.columnconfigure(0, minsize=100) для установки минимальной ширины первого столбца.

3. @jasonharper Большое вам спасибо. Но, пожалуйста, укажите ответ в разделе ответов, чтобы я мог поддержать вас

4. @acw1668 Я получил от вас идеальный ответ. Я мог бы принять ваш ответ, только если бы вы поместили его в раздел ответов. В любом случае, спасибо.

Ответ №1:

Поскольку в столбце 0 ничего нет, его ширина будет равна нулю. Однако вы можете использовать

 screen.columnconfigure(0, minsize=100) # change 100 to whatever you want
 

чтобы установить минимальную ширину столбца 0.