我在tkinter中创建一个GUI,其中有一个按钮。而且我不想要一个简单的按钮,我想要一个图标而不是按钮,当我单击一个按钮时,它的图标应该更改。这样我就可以使用同一按钮执行start()和stop()函数。
import tkinter as tk
from tkinter import *
from PIL import Image, ImageTk
root = tk.Tk()
def change_i():
if sound_btn[image] == icon:
#start_recording()
sound_btn.config(image=icon2)
else:
#stop_recording()
sound_btn.config(image=icon)
icon = PhotoImage(file='dh.png')
icon2 = PhotoImage(file='stop.png')
sound_btn = tk.Button(frame, image=icon, width=70,height=60,relief=FLAT ,command=change_i )
sound_btn.grid(row=0, column=1)
root.mainloop()
这有效:
import tkinter as tk
from tkinter import *
from PIL import Image, ImageTk
root = tk.Tk()
def change_i():
if sound_btn.image == icon:
#start_recording()
sound_btn.config(image=icon2)
sound_btn.image = icon2
else:
#stop_recording()
sound_btn.config(image=icon)
sound_btn.image = icon
icon = PhotoImage(file='dh.png')
icon2 = PhotoImage(file='stop.png')
sound_btn = tk.Button(root, image=icon, width=70,height=60,relief=FLAT ,command=change_i )
sound_btn.image = icon
sound_btn.grid(row=0, column=1)
root.mainloop()
编辑:
该答案通过将当前图像保存在的image
属性中sound_btn
而起作用,并在每次单击按钮时进行比较。sound_btn['image']
返回当前图像的“图像ID”,而不是对其的引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句