【问题标题】:Default Image sizes in ttk.Labelttk.Label 中的默认图像大小
【发布时间】:2013-08-11 18:37:21
【问题描述】:

目前我正在使用这个看起来很简单的 sn-p 代码:

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

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

来自here 我找到了我使用的帮助(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.

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

在搜索完所有内容后根本看不到任何参考资料,我开始怀疑在标签中使用图像是出于特定目的,而我的做法完全错了。我要做的只是在窗口顶部放置一个徽标,但我希望徽标的大小受到限制,因此它不会占据整个窗口。

另外值得注意的是this question,它似乎没有答案,但我也很好奇是否有一些文档。也许我遗漏了一些明显的东西,但我确实查看了 python 文档和http://www.tkdocs.com 网站以获取更多信息。

【问题讨论】:

  • 我无法在 python 2.7 上使用各种缩放的 gif 图像重现您的问题。它工作正常 - 各种缩放的图像正确显示,没有拉伸。也许它与您的几何管理器有关?您可以为您的代码发布更多上下文(或者您发布的所有内容是什么?)
  • @Brionius - 感谢您的反馈。我走开休息了一会儿,回来了,现在它正在工作。我试图自己再次重现它,但只能得出结论,我犯了一些非常荒谬的错误。不过,这只是我关于积压的第二篇文章,我认为我学到了宝贵的一课,即在发帖前休息一下和/或在沮丧时不发帖!
  • 很高兴它成功了:)

标签: python python-2.7 tkinter tk


【解决方案1】:

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

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()

现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多