【发布时间】:2020-08-22 19:44:36
【问题描述】:
我想用python中的tkinter模块制作一个简单的家庭账户程序。我想将okclick 函数绑定到button1。我认为我编写了适当的引用其他代码的代码,但是当我执行此代码时,会出现一条消息,指出函数 okclick 未定义。
有谁知道它有什么问题吗?
from tkinter import *
from tkinter import ttk
import colors as c
from tkcalendar import DateEntry
b=Tk()
class memo(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.master=master
self.master.title('Memo')
self.pack(fill=BOTH, expand=True)
frame1=Frame(self,width=500,height=50)
frame1.pack(expand=False)
label1=Label(frame1,text='Amount',width=10)
label1.pack(side=LEFT, padx=10,pady=10)
entry1=Entry(frame1,width=20)
entry1.pack(padx=10,fill=X,expand=True)
frame2=Frame(self,width=500,height=50)
frame2.pack(expand=False)
label2=Label(frame2,text='Cartegory',width=10)
label2.pack(side=LEFT, padx=10,pady=10)
listbox1=Listbox(frame2,width=20)
listbox1.insert(END,"식료품비","잡화비","건강관리비","외식비")
listbox1.pack(side=LEFT, padx=10,pady=10)
frame3=Frame(self,width=500,height=50)
frame3.pack(expand=False)
label3=Label(frame3,text='Date',width=10)
label3.pack(side=LEFT, padx=10,pady=10)
dateentry = DateEntry(frame3)
dateentry.pack(padx=10,pady=10)
frame4=Frame(self,width=500,height=500)
frame4.pack(expand=False)
button1=Button(frame4,text='csv Export',command=self.okClick)
button1.pack(side=LEFT,padx=10,pady=10)
def okClick(self):
name = self.entry1.get()
print(name)
a=memo(b)
a.mainloop()
【问题讨论】:
-
请使用完整的错误回溯更新您的问题。
-
在创建
Button时使用__init__()方法中的command=self.okClick指定回调函数。 -
错误回溯如下 ;) 谢谢!发生异常:未定义 NameError 名称 'okClick' 文件“D:\Codes\2048\Memo.py”,第 45 行,在 init button1=Button(frame4,text='csv Export' ,command=okClick) 文件“D:\Codes\2048\Memo.py”,第 50 行,在
a=memo(b) -
谢谢。现在用这些详细信息更新问题。
-
您可以先复制粘贴添加代码,然后选择刚刚粘贴的内容并点击问题的编辑框
{}按钮(或按Ctrl-k)。
标签: python tkinter tkcalendar