python中tkinter模块_tkinter模块常用参数(python3)

#filename:Caculater

import tkinter,time,decimal,math,string

root=tkinter.Tk()

root.title('计算器')

root.resizable(0,0)

global cuncu, vartext, result, fuhao

result = fuhao = None

vartext = tkinter.StringVar()

cuncu = []

class anjianzhi:

global cuncu, vartext, result, fuhao

def __init__(self,anjian):

self.anjian = anjian

def jia(self):

cuncu.append(self.anjian)

vartext.set( ''.join(cuncu))

def tui(self):

cuncu.pop()

vartext.set(''.join(cuncu))

def clear(self):

cuncu.clear()

vartext.set('')

result = None

fuhao = None

def zhengfu(self):

if cuncu[0]:

if cuncu[0] == '-':

cuncu[0] = '+'

elif cuncu[0] == '+':

cuncu[0] = '-'

else:

cuncu.insert(0, '-')

vartext.set(''.join(cuncu))

def xiaoshudian(self):

if cuncu.count('.') >= 1:

pass

else:

if cuncu == [] :

cuncu.append('0')

cuncu.append('.')

vartext.set(''.join(cuncu))

def yunshuan(self):

global cuncu, vartext, result, fuhao

if vartext.get() == '':

pass

else:

get1 = decimal.Decimal(vartext.get())

if self.anjian in ('1/x','sqrt'):

if self.anjian == '1/x':

result = 1/get1

elif self.anjian == 'sqrt':

result = math.sqrt(get1)

elif self.anjian in ('+','-','*','/','='):

if fuhao is not None:

get1 = decimal.Decimal(result)

get2 = decimal.Decimal(vartext.get())

if fuhao == '+':

result = get1 + get2

elif fuhao == '-':

result = get1 - get2

elif fuhao == '*':

result = get1 * get2

elif fuhao == '/':

result = get1 / get2

else:

result = get1

if self.anjian == '=':

fuhao = None

else:

fuhao = self.anjian

print(fuhao)

print(result)

vartext.set(str(result))

cuncu.clear()

def copy1():

# tkinter.Misc().clipboard_clear()

tkinter.Misc().clipboard_append(string(vartext.get()))

def buju(root):

global cuncu, vartext, result, fuhao

entry1 = tkinter.Label(root, width=30, height=2, bg='white', anchor='se', textvariable=vartext)

entry1.grid(row=0, columnspan=5)

buttonMC=tkinter.Button(root,text='MC',width=5)

buttonMR=tkinter.Button(root,text='MR',width=5)

buttonMS=tkinter.Button(root,text='MS',width=5)

buttonM1=tkinter.Button(root,text='M+',width=5)

buttonM2=tkinter.Button(root,text='M-',width=5)

buttonMC.grid(row=1,column=0)

buttonMR.grid(row=1,column=1)

buttonMS.grid(row=1,column=2)

buttonM1.grid(row=1,column=3)

buttonM2.grid(row=1,column=4)

buttonJ=tkinter.Button(root,text='←',width=5,command=anjianzhi('c').tui)

buttonCE=tkinter.Button(root,text='CE',width=5)

buttonC=tkinter.Button(root,text=' C ',width=5,command=anjianzhi('c').clear)

button12=tkinter.Button(root,text='±',width=5,command=anjianzhi('c').zhengfu)

buttonD=tkinter.Button(root,text='√',width=5,command=anjianzhi('sqrt').yunshuan)

buttonJ.grid(row=2,column=0)

buttonCE.grid(row=2,column=1)

buttonC.grid(row=2,column=2)

button12.grid(row=2,column=3)

buttonD.grid(row=2,column=4)

button7=tkinter.Button(root,text=' 7 ',width=5,command=anjianzhi('7').jia)

button8=tkinter.Button(root,text=' 8 ',width=5,command=anjianzhi('8').jia)

button9=tkinter.Button(root,text=' 9 ',width=5,command=anjianzhi('9').jia)

buttonc=tkinter.Button(root, text=' / ',width=5,command=anjianzhi('/').yunshuan)

buttonf= tkinter.Button(root, text=' % ',width=5)

button7.grid(row=3,column=0)

button8.grid(row=3,column=1)

button9.grid(row=3,column=2)

buttonc.grid(row=3,column=3)

buttonf.grid(row=3,column=4)

button4=tkinter.Button(root,text=' 4 ',width=5,command=anjianzhi('4').jia)

button5=tkinter.Button(root,text=' 5 ',width=5,command=anjianzhi('5').jia)

button6=tkinter.Button(root,text=' 6 ',width=5,command=anjianzhi('6').jia)

buttonx=tkinter.Button(root,text=' * ',width=5,command=anjianzhi('*').yunshuan)

buttonfs=tkinter.Button(root,text='1/x',width=5,command=anjianzhi('1/x').yunshuan)

button4.grid(row=4,column=0)

button5.grid(row=4,column=1)

button6.grid(row=4,column=2)

buttonx.grid(row=4,column=3)

buttonfs.grid(row=4,column=4)

button1 = tkinter.Button(root, text=' 1 ',width=5,command=anjianzhi('1').jia)

button2 = tkinter.Button(root, text=' 2 ',width=5,command=anjianzhi('2').jia)

button3 = tkinter.Button(root, text=' 3 ',width=5,command=anjianzhi('3').jia)

button_= tkinter.Button(root, text=' - ',width=5,command=anjianzhi('-').yunshuan)

buttondy= tkinter.Button(root, text=' \n = \n ',width=5,command=anjianzhi('=').yunshuan)

button1.grid(row=5, column=0)

button2.grid(row=5, column=1)

button3.grid(row=5, column=2)

button_.grid(row=5, column=3)

buttondy.grid(row=5, column=4,rowspan=2)

button0=tkinter.Button(root,text=' 0 ',width=11,command=anjianzhi('0').jia)

buttonjh = tkinter.Button(root,text=' . ',width=5,command=anjianzhi('c').xiaoshudian)

buttonjia=tkinter.Button(root,text=' + ',width=5,command=anjianzhi('+').yunshuan)

button0.grid(row=6,column=0,columnspan=2)

buttonjh.grid(row=6,column=2)

buttonjia.grid(row=6,column=3)

def caidan(root):

menu=tkinter.Menu(root)

submenu1=tkinter.Menu(menu,tearoff=0)

menu.add_cascade(label='查看',menu=submenu1)

submenu2 = tkinter.Menu(menu, tearoff=0)

submenu2.add_command(label='复制')

submenu2.add_command(label='粘贴')

menu.add_cascade(label='编辑',menu=submenu2)

submenu = tkinter.Menu(menu, tearoff=0)

submenu.add_command(label='查看帮助')

submenu.add_separator()

submenu.add_command(label='关于计算机')

menu.add_cascade(label='帮助',menu=submenu)

root.config(menu=menu)

buju(root)

caidan(root)

root.mainloop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值