再次是一个非常简单的问题。我再次在所有网站上进行了研究,但只有一篇文章对我有帮助。
这是我感兴趣的代码(来自上面的文章):
import tkinter
import sys
root = tkinter.Tk()
root.geometry("200x200")
root.title("His Button Increaser")
counter = tkinter.IntVar()
def onClick(event=None):
counter.set(counter.get() + 1)
tkinter.Label(root, textvariable=counter).pack()
tkinter.Button(root, text="Increase", command=onClick, fg="dark green", bg =
"white").pack()
root.mainloop()
基本上,我想在按钮上添加图片并删除该按钮上的文字,以便用户看到图片,然后单击按钮,它会以最佳。
我要实现的代码部分是:
PhotoImage(file = "imageofcar".png")
谢谢:)
答案 0 :(得分:1)
要在按钮上显示图像,只需通过名为 image 的参数将关联的 PhotoImage 对象传递给 Button 。解决方法如下:
import tkinter
root = tkinter.Tk()
root.geometry("200x200")
root.title("His Button Increaser")
counter = tkinter.IntVar()
def onClick(event=None):
counter.set(counter.get() + 1)
tkinter.Label(root, textvariable=counter).pack()
photo = tkinter.PhotoImage(file='imageofcar.png')
tkinter.Button(root, image=photo, command=onClick, fg="dark green", bg = "white").pack()
root.mainloop()
答案 1 :(得分:0)
您可以执行以下操作:首先创建一个PhotoImage
对象,在其中传递要加载的图像作为参数,然后将按钮配置为接受指定大小的图像,最后打包带有pack()
的按钮:
from tkinter import *
import sys
root = Tk()
root.geometry("200x200")
root.title("His Button Increaser")
counter = IntVar()
def onClick(event=None):
counter.set(counter.get() + 1)
label = Label(root, textvariable=counter).pack()
button = Button(root, text="Increase", command=onClick, fg="dark green", bg = "white")
photo = PhotoImage(file = "imageofcar.png")
button.config(image=photo,width="100",height="100")
button.pack()
root.mainloop()
答案 2 :(得分:0)
您可以像这样将图像添加到按钮:
image = Image.open("imageofcar.jpg")
photo = ImageTk.PhotoImage(image)
b.config(image=photo)
其中b
是对按钮对象的引用。
创建Tk对象并将其“打包”成一行通常是一个坏主意,因为pack
函数返回None。
这些添加到您的代码中的更改将导致:
import tkinter
import sys
from PIL import Image, ImageTk
root = tkinter.Tk()
root.geometry("200x200")
root.title("His Button Increaser")
counter = tkinter.IntVar()
def onClick(event=None):
counter.set(counter.get() + 1)
tkinter.Label(root, textvariable=counter).pack()
b = tkinter.Button(root, text="Increase", command=onClick, fg="dark green", bg =
"white")
b.pack()
image = Image.open("imageofcar.jpg")
photo = ImageTk.PhotoImage(image)
b.config(image=photo)
root.mainloop()