|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本人写了一个人第二窗口的计算器,可是不知怎么实用类,导致报错。第一段是需要修改的,第二段是源代码。
- class open():
- def __init__(self,root,s1,s2,s3,e1,e2,e3,bx,b_10,b_12,bx1,bx2,bx3,bx4):
- self.root = root
- self.s1 = s1
- self.s2 = s2
- self.s3 = s3
- self.root.title('计算器')
- self.e1 = e1
- self.e2 = e2
- self.e3 = e3
- self.bx = bx
- self.b_10 = b_10
- self.b_12 = b_12
- self.bx1 = bx1
- self.bx2 = bx2
- self.bx3 = bx3
- self.bx4 = bx4
- testCMD = self.root.register(test)
- self.e1 = Entry(self.root, width=8, highlightthickness=10, textvariable=s1, validate="key")
- self.e1.grid(row=0, column=0)
- self.e2 = Entry(self.root, width=8, highlightthickness=10, textvariable=s2, validate="key")
- self.e2.grid(row=0, column=1)
- self.e3 = Entry(self.root, width=8, highlightthickness=10, textvariable=s3, state="readonly")
- self.e3.grid(row=0, column=3)
- self.bx = Button(self.root, text='使用说明', command=bxr, padx=30, pady=10)
- self.bx.grid(row=3, columnspan=4, pady=20)
- self.b_10 = Button(self.root, text='清除', padx=20, pady=20, command=no)
- self.b_10.grid(row=4, columnspan=4, pady=20)
- self.b_12 = Label(self.root, text='=', padx=20, pady=20)
- self.b_12.grid(row=0, column=2)
- self.bx1 = Button(self.root, text='+', padx=20, pady=20, command=add)
- self.bx1.grid(row=1, column=0)
- self.bx2 = Button(self.root, text='-', padx=20, pady=20, command=dels)
- self.bx2.grid(row=1, column=1)
- self.bx3 = Button(self.root, text='*', padx=20, pady=20, command=multiply)
- self.bx3.grid(row=1, column=2)
- self.bx4 = Button(self.root, text='/', padx=20, pady=20, command=divide)
- self.bx4.grid(row=1, column=3)
- def test(content):
- return content.isdigit()
- def bxr():
- top = Toplevel()
- top.title('使用说明')
- msg = Message(top, text='本计算器输入数字后,再点击符号,即可得到结果')
- msg.pack()
- def no():
- global e1,e2,e3
- e1.delete(0, END)
- e2.delete(0, END)
- e3.delete(0, END)
- # 符号
- def add():
- global s1
- global s2
- global s3
- global result
- result = int(s1.get()) + int(s2.get())
- s3.set(str(result))
- def dels():
- result = int(s1.get()) - int(s2.get())
- s3.set(str(result))
- def multiply():
- result = int(s1.get()) * int(s2.get())
- s3.set(str(result))
- def divide():
- if int(s2.get()) == 0:
- s3.set('错误!')
- else:
- result = int(s1.get()) / int(s2.get())
- s3.set(str(result))
- b11 = Button(f1,text='计算器(辅助)',padx=10,pady=10,command=open.__init__)
- b11.grid(row=4,columnspan=5)
复制代码
第二段:
- from tkinter import *
- root = Tk()
- root.title('计算器')
- s1 = StringVar()
- s2 = StringVar()
- s3 = StringVar()
- def test(content):
- return content.isdigit()
-
- testCMD = root.register(test)
- e1 = Entry(root,width=8,highlightthickness=10,textvariable=s1,validate="key")
- e1.grid(row=0,column=0)
- e2 = Entry(root,width=8,highlightthickness=10,textvariable=s2,validate="key")
- e2.grid(row=0,column=1)
- e3 = Entry(root,width=8,highlightthickness=10,textvariable=s3,state="readonly")
- e3.grid(row=0,column=3)
- def bxr():
- top = Toplevel()
- top.title('使用说明')
- msg = Message(top,text='本计算器输入数字后,再点击符号,即可得到结果')
- msg.pack()
- bx = Button(root,text='使用说明',command=bxr,padx=30,pady=10)
- bx.grid(row=3,columnspan=4,pady=20)
- def no():
- e1.delete(0,END)
- e2.delete(0,END)
- e3.delete(0,END)
- b_10 = Button(root,text='清除',padx=20,pady=20,command=no)
- b_10.grid(row=4,columnspan=4,pady=20)
- b_12 = Label(root,text='=',padx=20,pady=20)
- b_12.grid(row=0,column=2)
- #符号
- def add():
- result = int(s1.get()) + int(s2.get())
- s3.set(str(result))
-
- bx1 = Button(root,text='+',padx=20,pady=20,command=add)
- bx1.grid(row=1,column=0)
- def dels():
- result = int(s1.get()) - int(s2.get())
- s3.set(str(result))
- bx2 = Button(root,text='-',padx=20,pady=20,command=dels)
- bx2.grid(row=1,column=1)
- def multiply():
- result = int(s1.get()) * int(s2.get())
- s3.set(str(result))
-
- bx3 = Button(root,text='*',padx=20,pady=20,command=multiply)
- bx3.grid(row=1,column=2)
- def divide():
- if int(s2.get()) == 0:
- s3.set('错误!')
- else:
- result = int(s1.get()) / int(s2.get())
- s3.set(str(result))
- bx4 = Button(root,text='/',padx=20,pady=20,command=divide)
- bx4.grid(row=1,column=3)
- mainloop()
复制代码
|
|