【问题标题】:How to remove background borders in tkinter?如何在 tkinter 中删除背景边框?
【发布时间】:2017-02-02 09:33:48
【问题描述】:

我仍然是编程的初学者。我有一个使用 Tkinter 无法摆脱的问题。事实是我正在为我的根 gui 使用背景图像,我将它相应地缩放到我的 gui 大小并且它工作正常。 问题是,在paint.net 上,我删除了图像边框周围的白色像素,这使得它的形状不完全是矩形。当我将它用作 Tkinter 上的背景图像时,作为 .gif 文件,我删除的白色像素仍然出现在 gui 上。如果我在正常状态下使用 gui,这不会是一个大问题,但我使用命令 root.overrideredirect(1) 删除窗口边框,使其看起来像这样: what I have

what I want without white borders(the image already has no borders, imgur somehow brought them back ,and there isnt any buttons because it's the image)

在此先感谢,如果很明显或者我犯了重大错误,我们深表歉意。

编辑:显然这是一个 Windows 问题,因为它在 Linux 上工作的 j_4321。 对于 Windows 用户,我发现使用这些行可以很好地解决问题:

root.wm_attributes("-transparentcolor","white")
root.configure(background='white')

并像这样将 bg='white' 添加到我的标签中:

image_label=Label(root,image=your_image,bg='white')

如果确实使用 .gif 文件,可能会保留一些白色像素。通过这种方式,它们似乎更容易为 Tkinter 删除。

希望对你有帮助!

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。跨度>
  • 您是否尝试过使用 .png 图像而不是 .gif?如果您使用 python 3,tkinter 现在支持 png,否则请参阅 effbot.org/tkinterbook/photoimage.htm 以包含使用 PIL 的一个。
  • 我不知道到底发生了什么。昨天它告诉我 .png 不受支持,现在它可以与 .png 一起使用,尽管白色像素没有消失。
  • 如果您在图像查看器中打开您的 png,您是否也会看到白色像素?
  • 当我写 PIL 时,我指的是 Pillow,它是 PIL 的一个分支,在 python 2 和 3 上都能完美运行:pypi.python.org/pypi/Pillow/4.0.0

标签: python tkinter background


【解决方案1】:

以下是您的问题的解决方案:

from Tkinter import *

app = Tk()
app.overrideredirect(True)
app.wm_attributes("-topmost", True)
app.wm_attributes("-transparent", True)
app.config(bg='systemTransparent')

app.geometry("+300+300")

app.image = PhotoImage(file="ButtonBACKUP.gif")
label = Label(app, image=app.image)
label.config(bg='systemTransparent')

label.pack()
app.mainloop()

这段代码所做的只是制作一个标签,然后将标签背景设置为透明,同时切断顶部。

【讨论】:

    猜你喜欢
    • 2019-06-02
    • 2021-11-20
    • 2014-07-23
    • 2021-04-08
    • 1970-01-01
    • 2019-10-23
    • 2012-09-27
    • 2015-05-06
    • 1970-01-01
    相关资源
    最近更新 更多