【问题标题】:Add an image on a 'price button' tkinter在“价格按钮”tkinter 上添加图像
【发布时间】:2019-01-20 03:04:31
【问题描述】:

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

这里是文章: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")

谢谢:)

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    您可以像这样向按钮添加图像:

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

    【讨论】:

      【解决方案2】:

      要在按钮上显示图像,您只需通过名为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()
      

      【讨论】:

      • 效果很好,谢谢。我现在可以在我的代码中实现它,因为上面的代码来自另一篇文章。谢谢
      • 不客气。如果您认为这个答案最适合您,请考虑接受(点击接受)。
      • 我想补充的另一件事是如何使用上面的代码打开一个新窗口。我试图创建一个函数并尝试了代码 - 'command=createwindow' - 编辑:没关系,我已经弄清楚了:p
      【解决方案3】:

      您可以这样做:首先创建一个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()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-08
        • 1970-01-01
        • 2021-04-06
        • 2019-02-14
        • 2023-01-01
        • 1970-01-01
        • 2021-07-15
        • 2021-11-23
        相关资源
        最近更新 更多