|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kno 于 2023-4-21 21:56 编辑
- import io # used for dealing with input and output
- from tkinter import * # importing the necessary libraries
- import tkinter.messagebox as mbox
- import tkinter as tk # imported tkinter as tk
- # -----------------------------------------------------------------------------------------------
- class Keypad(tk.Frame):
- keyboardnum=[i for i in range(0,10)]
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.target = None
- self.memory = ""
- for x, item in enumerate(self.keyboardnum):
- b = tk.Button(
- self,
- text=item,
- command=lambda text=item: self.append(text),
- font=("Arial", 14),
- bg="white",
- fg="black",
- borderwidth=3,
- relief="raised",
- )
- b.grid(row=(x%3), column=int(x/3), sticky="news")
- x = tk.Button(
- self,
- text="+",
- command=self.add_sym,
- font=("Arial", 14),
- bg="white",
- fg="black",
- borderwidth=3,
- relief="raised",
- )
- x.grid(row=0, column=10, columnspan="2", sticky="news")
- x = tk.Button(
- self,
- text="-",
- command=self.dec_sym,
- font=("Arial", 14),
- bg="white",
- fg="black",
- borderwidth=3,
- relief="raised",
- )
- x.grid(row=0, column=12, columnspan="2", sticky="news")
- x = tk.Button(
- self,
- text="*",
- command=self.mul_sym,
- font=("Arial", 14),
- bg="white",
- fg="black",
- borderwidth=3,
- relief="raised",
- )
- x.grid(row=0, column=14, columnspan="3", sticky="news")
- x = tk.Button(
- self,
- text="/",
- command=self.div_sym,
- font=("Arial", 14),
- bg="white",
- fg="black",
- borderwidth=3,
- relief="raised",
- )
- x.grid(row=0, column=17, columnspan="2", sticky="news")
- x = tk.Button(
- self,
- text="=",
- command=self.equ_sym,
- font=("Arial", 14),
- bg="white",
- fg="black",
- borderwidth=3,
- relief="raised",
- )
- x.grid(row=0, column=19, columnspan="2", sticky="news")
- def get(self):
- if self.target:
- return self.target.get()
- def append(self, text):
- if self.target:
- self.target.insert("end", text)
- def clear(self):
- if self.target:
- self.target.delete(0, END)
- def backspace(self):
- if self.target:
- text = self.get()
- text = text[:-1]
- self.clear()
- self.append(text)
- def space(self):
- if self.target:
- text = self.get()
- text = text + " "
- self.clear()
- self.append(text)
- def copy(self):
- # TODO: copy to clipboad
- if self.target:
- self.memory = self.get()
- self.label["text"] = "memory: " + self.memory
- print(self.memory)
- def paste(self):
- # TODO: copy from clipboad
- if self.target:
- self.append(self.memory)
- def show(self, entry):
- self.target = entry
- self.place(relx=0.4, rely=0.4, anchor="c")
- def add_sym(self):
- if self.target:
- text=self.get()
- text=text+"+"
- self.clear()
- self.append(text)
- def dec_sym(self):
- if self.target:
- text=self.get()
- text=text+"-"
- self.clear()
- self.append(text)
- def mul_sym(self):
- if self.target:
- text=self.get()
- text=text+"*"
- self.clear()
- self.append(text)
- def div_sym(self):
- if self.target:
- text=self.get()
- text=text+"/"
- self.clear()
- self.append(text)
- def equ_sym(self):
- if self.target:
- equ_result()
- self.clear()
- window = tk.Tk()
- window.title("Emoji Dictionary")
- window.geometry("1000x700")
- outputtxt=tk.Text(
- window,
- height=7,
- width=57,
- font=("Arial",14),
- bg="white",
- fg="black",
- borderwidth=3,
- )
- outputtxt.place(x=120,y=400)
- myname=StringVar(window)
- firstclick1=True
- def clear_text():
- inputentry.delete(0,END)
- outputtxt.delete("1.0","end")
- def on_inputentry_click(event):
- global firstclick1
- if firstclick1:
- firstclick1=False
- inputentry.delete(0,"end")
- inputentry=Entry(window,font=("Arial",14),width=57,border=2,bg="white",fg="black")
- inputentry.place(x=120,y=100)
- Button(
- window,
- text="clear",
- command=clear_text,
- font=("Arial",20),
- bg="white",
- fg="black",
- borderwidth=3,
- ).place(x=770,y=250)
- def equ_result():
- text=inputentry.get()
- if text=='':
- pass
- else:
- if '+' in text:
- location = text.index('+')
- num1 = int(text[0:location])
- num2 = int(text[location + 1:])
- result = num1 + num2
- text = str(result)
- outputtxt.insert(END,"reslut:"+text+'\n')
- elif '-' in text:
- location = text.index('-')
- num1 = int(text[0:location])
- num2 = int(text[location + 1:])
- result = num1 - num2
- text = str(result)
- outputtxt.insert(END, "reslut:" + text+'\n')
- elif '*' in text:
- location = text.index('*')
- num1 = int(text[0:location])
- num2 = int(text[location + 1:])
- result = num1 * num2
- text = str(result)
- outputtxt.insert(END, "reslut:" + text+'\n')
- elif '/' in text:
- location = text.index('/')
- num1 = int(text[0:location])
- num2 = int(text[location + 1:])
- result = num1 / num2
- text = str(result)
- outputtxt.insert(END, "reslut:" + text+'\n')
- def exit_win():
- if mbox.askokcancel("Exit","Do you want to exit"):
- window.destroy()
- keypad=Keypad(window)
- keypad.show(inputentry)
- window.protocol("WM_DELETE_WINDOW", exit_win)
- window.mainloop()
复制代码 |
|