如何使用不同的按钮调用相同的功能?目前,我正在为不同的按钮创建不同的功能。
from tkinter import *
from tkinter import filedialog
window=Tk()
window.title("CNO")
def browsefunc():
filename=filedialog.askopenfilename(parent=window,initialdir="C:\\Users\\jyoti\\Documents\\Python")
pathlabel_lbl1.config(text=filename)
def browsefunc1():
filename=filedialog.askopenfilename(parent=window,initialdir="C:\\Users\\jyoti\\Documents\\Python")
pathlabel_lbl2.config(text=filename)
Browse_btn=Button(window,text="Browse",command=browsefunc)
Browse_btn.grid(row=1,column=2,sticky=W+E)
pathlabel_lbl1=Label(window)
pathlabel_lbl1.grid(row=1,column=0,columnspan=2,sticky=W+E)
Browse_btn=Button(window,text="Browse",command=browsefunc1)
Browse_btn.grid(row=2,column=2,sticky=W+E)
pathlabel_lbl2=Label(window)
pathlabel_lbl2.grid(row=2,column=0,columnspan=2,sticky=W+E)
答案 0 :(得分:1)
Tkinter并不限制可以通过不同的小部件调用函数的次数。因此,您可以简单地将browserfunc()作为任意数量的按钮的命令属性。使用以下内容:
from tkinter import *
from tkinter import filedialog
window=Tk()
window.title("CNO")
def browsefunc():
filename=filedialog.askopenfilename(parent=window,initialdir="C:\\Users\\jyoti\\Documents\\Python")
pathlabel_lbl1.config(text=filename)
def browsefunc1():
filename=filedialog.askopenfilename(parent=window,initialdir="C:\\Users\\jyoti\\Documents\\Python")
pathlabel_lbl2.config(text=filename)
Browse_btn=Button(window,text="Browse",command=browsefunc)
Browse_btn.grid(row=1,column=2,sticky=W+E)
pathlabel_lbl1=Label(window)
pathlabel_lbl1.grid(row=1,column=0,columnspan=2,sticky=W+E)
Browse_btn=Button(window,text="Browse",command=browsefunc)
Browse_btn.grid(row=2,column=2,sticky=W+E)
pathlabel_lbl2=Label(window)
pathlabel_lbl2.grid(row=2,column=0,columnspan=2,sticky=W+E)
window.mainloop()
您有时可能还想使用lambda
。尽管就您而言,它根本不是必需的。
希望这会有所帮助。
答案 1 :(得分:0)
只需编辑command=browsefunc
使其与两个按钮中的函数名称都匹配。
当前您有Browse_btn=Button(window,text="Browse",command=browsefunc)
和Browse_btn=Button(window,text="Browse",command=browsefunc1)
,因此只需编辑最后一个即可调用相同的函数名。