1

目前我正在使用这个看起来很简单的代码片段:

label = ttk.Label(mainframe)
image1 = PhotoImage(file='my_image.gif')
label['image'] = image1
label.grid(column=1, row=0)

但是,如果我在 Photoshop 中编辑 my_image.gif 的大小,然后再次运行它,图像会被拉伸到相同的大小,无论我制作的基础图像有多小,这似乎都会继续。这似乎向我暗示 PhotoImage 或它上面的东西强制执行默认大小或特定的最小大小。我找不到任何文件表明是这种情况。

这里我找到了我使用的帮助(PhotoImage)建议。在 python 解释器中,我运行 help(PhotoImage) 命令,我发现了这个:

height(self)
    Return the height of the image.
type(self)
    Return the type of the imgage, e.g. "photo" or "bitmap".
width(self)
    Return the width of the image.

但它似乎也没有为我提供任何类型的图像大小。

在进行了全面搜索并且根本没有看到任何参考之后,我开始怀疑在标签中使用图像是出于特定目的,而我正在接近这一切都是错误的。我要做的就是在窗口顶部放置一个徽标,但我希望徽标的大小受到限制,因此它不会占据整个窗口。

另外值得注意的是这个问题似乎缺乏答案,但我也很好奇是否有一些文档。也许我遗漏了一些明显的东西,但我确实检查了 python 文档和http://www.tkdocs.com站点以获取更多信息。

4

1 回答 1

0

显然我犯了一个错误,但我不知道它是什么。最后,这是为我完成的代码:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("ImageTest")
label = ttk.Label(root)
image1 = PhotoImage(file='my_image.gif')
label['image'] = image1
label.grid(column=1, row=0)

root.mainloop()

现在一切都按预期工作。

于 2019-09-25T02:48:08.563 回答