枕头,Tkinter,Python,隐形图像按钮

时间:2014-08-31 20:10:22

标签: python image button tkinter pillow

晚上好!:)

所以,我一直致力于我的一个小项目,我已经提出了这个代码(在Sapphire64的帮助下:) :) 我可以将图像显示为按钮以使其可点击但我有一个问题,你可以看到它是一个按钮,你可以看到图像周围的矩形按钮框。 我希望图像像按钮一样可点击,但基本上是不可见的。 然后我尝试将它变成一个非常有效的复选按钮,但我再次看到除了图像,复选按钮以外的其他东西的可见证据。我可以让checkbutton隐身吗?

所以我的问题是,如何制作一个可点击的图像,而不会显示它的按钮/按钮。

谢谢!

我把我的整个代码放在这里,你可以看到图像显示为两个按钮,一个被注释掉。

from tkinter import *
from PIL import Image, ImageTk

SWH = Tk() #Create Window

SWH.geometry("1024x950+130+0")
SWH.title("ServiceWhiz.")

img = None  #Var for future image named img. Currently giving it "None" as value.

def printimage():   #When print image is pressed do this:
    global img      #Make reference to predefined var.
    load = Image.open("ServiceWhiz.png")   #Load Image from file.
    render = ImageTk.PhotoImage(load)   #Load the image.

################################
    img = Checkbutton(SWH,state = ACTIVE,height = 45,width = 289,offvalue=0, image=render,command=imgpress)    #Display the image as a button and allow it to go to imgpress.
    #img = Button(SWH,image=render,command=imgpress)
################################
    img.image = render  
    img.place(x=0,y=0)
    return;

def imgpress():
    global img
    img.destroy()
    Label1 = Label(SWH, text="Image has been clicked",fg="#0094FF",font=('Arial',20)).pack()
    return;

SWTitle = Label(SWH, text="ServiceWhiz.",fg="#0094FF",font=('Arial',20)).pack()
MyButtonTest = Button(SWH, text="Click Me.",fg="White",bg="#0094FF",command=printimage).pack()

1 个答案:

答案 0 :(得分:2)

如果您希望能够点击图片,只需将绑定添加到<Button-1>即可。例如:

l = Label(..., image=render, ...)
...
def imgpress(event):
    ...
l.bind("<Button-1>", imgpress)
...

通过将图像添加到画布并在画布上进行绑定,可以获得相同的效果。