在“价格按钮” tkinter上添加图像

时间:2018-08-13 11:32:36

标签: python tkinter

再次是一个非常简单的问题。我再次在所有网站上进行了研究,但只有一篇文章对我有帮助。

这是文章:How do I create a button in Python Tkinter to increase integer variable by 1 and display that variable?

这是我感兴趣的代码(来自上面的文章):

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

谢谢:)

3 个答案:

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