插入图像后标签的大小发生变化

Label's size changing after inserting an image

我正在尝试重构一张分为 6 个部分的图片,方法是将这些部分整齐地添加到垂直排列的 6 个标签中。图片具有与标签的确切尺寸,但在添加它们之后,要么标签变小,要么图像没有达到它们应有的尺寸,因此图片部分没有统一。为了证明这一点,我用我制作的函数检查了添加图像之前和之后标签的大小。

带有图像的标签代码、它们的大小和结果:

Lwidth = 512 #root.winfo_width()
Lheight = 115 #root.winfo_height() // 6

img1=Image.open('row-1.png')

bg1=ImageTk.PhotoImage(img1)
  
l1 = Label(root, image=bg1)
l1.pack(fill='both', expand=True)
l1.image = bg1 
l1.update()


img2=Image.open('row-2.png')

bg2=ImageTk.PhotoImage(img2)
  
l2 = Label(root, image=bg2)
l2.pack(fill='both', expand=True)
l2.image = bg2 
l2.update()


img3=Image.open('row-3.png')

bg3=ImageTk.PhotoImage(img3)
   
l3 = Label(root, image=bg3)
l3.pack(fill='both', expand=True)
l3.image = bg3 
l3.update()


img4=Image.open('row-4.png')

bg4=ImageTk.PhotoImage(img4)
  
l4 = Label(root, image=bg4)
l4.pack(fill='both', expand=True)
l4.image = bg4 
l4.update()


img5=Image.open('row-5.png')

bg5=ImageTk.PhotoImage(img5)
  
l5 = Label(root, image=bg5)
l5.pack(fill='both', expand=True)
l5.image = bg5 
l5.update()


img6=Image.open('row-6.png')

bg6=ImageTk.PhotoImage(img6)
  
l6 = Label(root, image=bg6)
l6.pack(fill='both', expand=True)
l6.image = bg6 
l6.update()

root.update()

结果:

这是我从没有图像的代码中得到的函数:

我完全确定问题不在图像上,我尝试了很多不同的方法来确保它们被正确分割,不会丢失一些部分...

问题是 tkinter 标签默认有一个 2px 宽的白色边框;这就是图像之间出现那些白线的原因。

要更改此设置,只需将 bd=0(或 borderwidth=0)添加到所有标签即可。像这样:l1 = Label(root, image=bg1, bd=0)

这是我的结果(忽略右边的白线,那只是我可怜的截图工具技能......):