Pillow,Tkinter,Python,无形图像按钮
大家晚上好 :)
我最近在做一个小项目,写了一些代码(有Sapphire64的帮助 :))。我可以把一张图片做成按钮,这样就可以点击了,但我遇到了一个问题,就是图片周围有一个矩形的按钮框,看起来很明显。我想让这张图片像按钮一样可以点击,但又不想让它看起来像个按钮。
于是我尝试把它做成一个复选按钮,效果差不多,但同样可以看到复选按钮的痕迹,还是不只是图片。请问我能把复选按钮弄得不可见吗?
所以我的问题是,如何才能让一张图片可以点击,但又不让人觉得它是个按钮或复选按钮呢?
谢谢!
我把我的完整代码放在这里,你可以看到这张图片被显示成两个按钮,其中一个是注释掉的。
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 个回答
2
如果你想让图片可以被点击,只需要给它加上一个绑定,使用 <Button-1>
。比如:
l = Label(..., image=render, ...)
...
def imgpress(event):
...
l.bind("<Button-1>", imgpress)
...
你也可以把图片放到一个画布上,然后在画布上进行绑定,这样也能达到同样的效果。