摩尔斯电码转换python编码_python-摩尔斯电码查询器

#-*- coding: UTF-8 -*-

__author__ = '007'

__date__ = '2016/4/5'

from Tkinter import *

classmorse2char():

char_morse={}

morse_char={}

morse_num={}

char_num={}def __init__(self):

self.root=Tk()

self.root.title("MORSE码查询器")

self.frm=Frame(self.root)#top

Label(self.root,text="MORSE码查询器", bg="green", font=('Arial',15)).pack()

self.morse_table()#left

self.frm_L =Frame(self.frm)

self.frm_LT=Frame(self.frm_L)

self.var_char=StringVar()

Entry(self.frm_LT, textvariable=self.var_char, width=5, font=('Arial',15)).pack(side=RIGHT)

Label(self.frm_LT, text="字符", bg="yellow", font=('Arial',12)).pack(side=LEFT)

self.frm_LT.pack(side=TOP)

self.var_L_char=StringVar()

self.lb_char= Listbox(self.frm_L, selectmode=BROWSE, listvariable=self.var_L_char, font =('Verdana',12), width=6, height=13)

self.lb_char.bind('', self.get_char)for key inself.char_num:

self.lb_char.insert(END, key[0])

self.scrl_char=Scrollbar(self.frm_L)

self.scrl_char.pack(side=RIGHT, fill=Y)

self.lb_char.configure(yscrollcommand=self.scrl_char.set)

self.lb_char.pack(side=LEFT, fill=BOTH)

self.scrl_char['command'] =self.lb_char.yview

self.frm_L.pack(side=LEFT)#mid

self.frm_M =Frame(self.frm)

self.t_show= Text(self.frm_M, width=20, height=5, font =('Verdana',15))

self.t_show.insert('1.0', '')

self.t_show.pack()

self.frm_MB=Frame(self.frm_M)

Button(self.frm_MB, text="清除", command=self.clear, width=6, height=1, bd=3, font=('Arial', 10)).pack(side=LEFT)

Button(self.frm_MB, text="查询", command=self.search, width=6, height=1, bd=3, font=('Arial', 10)).pack(side=RIGHT)

self.frm_MB.pack(side=BOTTOM)

self.frm_M.pack(side=LEFT)#right

self.frm_R =Frame(self.frm)

self.frm_RT=Frame(self.frm_R)

self.var_morse=StringVar()

Entry(self.frm_RT, textvariable=self.var_morse, width=5, font=('Arial',15)).pack(side=LEFT)

Label(self.frm_RT, text="morse码", bg="pink", font=('Arial',12)).pack(side=RIGHT)

self.frm_RT.pack(side=TOP)

self.var_R_morse=StringVar()

self.lb_morse= Listbox(self.frm_R, selectmode=BROWSE, listvariable=self.var_R_morse, font=('Verdana',12), width=10, height=13)

self.lb_morse.bind('',self.get_morse)for key inself.morse_num:

self.lb_morse.insert(END,key[0])

self.scrl_morse=Scrollbar(self.frm_R)

self.scrl_morse.pack(side=RIGHT,fill=Y)

self.lb_morse.configure(yscrollcommand=self.scrl_morse.set)

self.lb_morse.pack(side=LEFT,fill=BOTH)

self.scrl_morse['command'] =self.lb_morse.yview

self.frm_R.pack(side=LEFT)

self.frm.pack()defget_char(self, event):

self.var_char.set('')

self.var_morse.set('')

tmp=self.lb_char.get(self.lb_char.curselection())

self.var_char.set(tmp)defget_morse(self, event):

self.var_morse.set('')

self.var_char.set('')

tmp=self.lb_morse.get(self.lb_morse.curselection())

self.var_morse.set(tmp)defclear(self):

self.var_char.set('')

self.var_morse.set('')

self.t_show.delete('1.0','10.0')defsearch(self):

self.t_show.delete('1.0','10.0')

tmp_char=self.var_char.get().upper()

tmp_morse=self.var_morse.get()if tmp_char != '':if notself.char_morse.has_key(tmp_char):

self.t_show.insert('1.0','您输入的字符不在查询范围内!')else:

self.t_show.insert('1.0','morse码:' + '\t' + self.char_morse[tmp_char][0:] + '\n')elif tmp_morse != '':if notself.morse_char.has_key(tmp_morse):

self.t_show.insert('1.0','您输入的morse码不在查询范围内')else:

self.t_show.insert('1.0','字符:' + '\t' + self.morse_char[tmp_morse][0] + '\n')else:

self.t_show.insert('1.0',"请选择或输入")

self.var_char.set('')

self.var_morse.set('')defmorse_table(self):

f= file('./morse_query')for line inf:

chunk= line.strip().split(' ')#print chunk

self.char_morse[chunk[0]] = chunk[1]

self.morse_char[chunk[1]] =chunk[0]

self.char_num= sorted(self.char_morse.iteritems(), key = lambda asd:asd[1])

self.morse_num= sorted(self.morse_char.iteritems(), key = lambdaasd:asd[0])defmain():

m=morse2char()

mainloop()if __name__ == "__main__":

main()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值