pyhon之Tkinter编写的ASCII码查询器


偶然间搜到一篇关于tkinter的博客-------原来的python2版------

 

在这里我把他改成了python3版的

经过测试可以完美运行

python2中的has_key 在python3中被移除  由 in来替换

python2中的iteritem 在python3中 由 item表示

 

  1 #encoding: UTF-8
  2 from tkinter import *
  3 
  4 class show:
  5     num_info_hash = {}
  6     char_info_hash = {}
  7     num_char = {}
  8     char_num = {}
  9 
 10     def __init__(self):
 11 
 12         self.root = Tk()
 13         self.root.title("ASCII码查询")
 14         # self.root.geometry('470x320')
 15         ########
 16         self.frm = Frame(self.root)
 17         # Top
 18         Label(self.root, text="ASCII码查询", font=('Arial', 15)).pack()
 19         self.load_sys()
 20         self.frm = Frame(self.root)
 21         # Left
 22         self.frm_L = Frame(self.frm)
 23         self.frm_LT = Frame(self.frm_L)
 24         self.var_char = StringVar()
 25         Entry(self.frm_LT, textvariable=self.var_char, width=5, font=('Verdana', 15)).pack(side=RIGHT)
 26         Label(self.frm_LT, text='字符', font=('Arial', 12)).pack(side=LEFT)
 27         self.frm_LT.pack()
 28 
 29         self.var_L_char = StringVar()
 30         self.lb_char = Listbox(self.frm_L, selectmode=BROWSE, listvariable=self.var_L_char, font=('Verdana', 12),
 31                                width=10, height=13)
 32         self.lb_char.bind('<ButtonRelease-1>', self.get_char)
 33         for key in self.char_num:
 34             self.lb_char.insert(END, key[0])
 35         self.scrl_char = Scrollbar(self.frm_L)
 36         self.scrl_char.pack(side=RIGHT, fill=Y)
 37         self.lb_char.configure(yscrollcommand=self.scrl_char.set)
 38         self.lb_char.pack(side=LEFT, fill=BOTH)
 39         self.scrl_char['command'] = self.lb_char.yview
 40 
 41         self.frm_L.pack(side=LEFT)
 42 
 43         # Mid
 44         self.frm_M = Frame(self.frm)
 45         self.t_show = Text(self.frm_M, width=20, height=5, font=('Verdana', 15))
 46         self.t_show.insert('1.0', '')
 47         self.t_show.pack()
 48 
 49         self.frm_MB = Frame(self.frm_M)
 50         Button(self.frm_MB, text="清除", command=self.clear, width=6, height=1,
 51                font=('Arial', 10)).pack(side=LEFT)
 52         Button(self.frm_MB, text="查询", command=self.search, width=6, height=1,
 53                font=('Arial', 10)).pack(side=RIGHT)
 54         self.frm_MB.pack(side=BOTTOM)
 55 
 56         self.frm_M.pack(side=LEFT)
 57 
 58         # Right
 59         self.frm_R = Frame(self.frm)
 60         self.frm_RT = Frame(self.frm_R)
 61         self.var_int = StringVar()
 62         Entry(self.frm_RT, textvariable=self.var_int, width=5, font=('Verdana', 15)).pack(side=LEFT)
 63         Label(self.frm_RT, text='十进制', font=('Arial', 12)).pack(side=RIGHT)
 64         self.frm_RT.pack()
 65         self.var_R_int = StringVar()
 66         self.lb_int = Listbox(self.frm_R, selectmode=BROWSE, listvariable=self.var_R_int, font=('Verdana', 12),
 67                               width=10, height=13)
 68         self.lb_int.bind('<ButtonRelease-1>', self.get_int, )
 69         for key in self.num_char:
 70             self.lb_int.insert(END, key[0])
 71         self.scrl_int = Scrollbar(self.frm_R)
 72         self.scrl_int.pack(side=RIGHT, fill=Y)
 73         self.lb_int.configure(yscrollcommand=self.scrl_int.set)
 74         self.lb_int.pack(side=LEFT, fill=BOTH)
 75         self.scrl_int['command'] = self.lb_int.yview
 76 
 77         self.frm_R.pack(side=LEFT)
 78 
 79         self.frm.pack()
 80         ########
 81 
 82     def get_char(self, event):
 83         self.var_char.set('')
 84         self.var_int.set('')
 85         tmp = self.lb_char.get(self.lb_char.curselection())
 86         self.var_char.set(tmp)
 87 
 88     def get_int(self, event):
 89         self.var_int.set('')
 90         self.var_char.set('')
 91         tmp = self.lb_int.get(self.lb_int.curselection())
 92         self.var_int.set(tmp)
 93 
 94     def clear(self):
 95         self.var_char.set('')
 96         self.var_int.set('')
 97         self.t_show.delete('1.0', '10.0')
 98 
 99     def search(self):
100         self.t_show.delete('1.0', '100.0')
101         tmp_char = self.var_char.get()
102         tmp_int = self.var_int.get()
103         if tmp_char != '':
104             if not (tmp_char in self.char_info_hash):
105                 self.t_show.insert('1.0', "您输入的字符不在128个字符之内")
106             else:
107                 self.t_show.insert('1.0', '十六进制:'+ '\t' + self.char_info_hash[tmp_char][
108                     2] + '\n')
109                 self.t_show.insert('1.0',
110                                    '十进制:' + '\t' + self.char_info_hash[tmp_char][1] + '\n')
111                 self.t_show.insert('1.0',
112                                    '八进制:' + '\t' + self.char_info_hash[tmp_char][0] + '\n')
113                 self.t_show.insert('1.0', '字符:' + '\t' + tmp_char + '\n\n')
114             self.var_char.set('')
115             self.var_int.set('')
116         elif tmp_int != '':
117             if not (tmp_int in self.num_info_hash):
118                 self.t_show.insert('1.0', "请输入介于0~127之间的整数")
119             else:
120                 self.t_show.insert('1.0',
121                                    '字符:' + '\t' + self.num_info_hash[tmp_int][2] + '\n')
122                 self.t_show.insert('1.0',
123                                    '十六进制:' + '\t' + self.num_info_hash[tmp_int][1] + '\n')
124                 self.t_show.insert('1.0',
125                                    '八进制:' + '\t' + self.num_info_hash[tmp_int][0] + '\n')
126                 self.t_show.insert('1.0', '十进制:' + '\t' + tmp_int + '\n\n')
127             self.var_char.set('')
128             self.var_int.set('')
129         else:
130             self.t_show.insert('1.0', '请选择或输入')
131 
132     def load_sys(self):
133         f = open('1_3_2_asc_2')
134 
135         for line in f:
136             chunk = line.strip().split('   ')
137             self.num_char[int(chunk[1].strip())] = chunk[3].strip()
138             self.char_num[chunk[3].strip()] = int(chunk[1].strip())
139             self.num_info_hash[chunk[1].strip()] = [chunk[0].strip(), chunk[2].strip(), chunk[3].strip()]
140             self.char_info_hash[chunk[3].strip()] = [chunk[0].strip(), chunk[1].strip(), chunk[2].strip()]
141 
142         self.num_char = sorted(self.num_char.items(), key=lambda asd: asd[0])
143         self.char_num = sorted(self.char_num.items(), key=lambda asd: asd[1])
144 
145 
146 def main():
147     d = show()
148     mainloop()
149 
150 
151 if __name__ == "__main__":
152     main()
153 
154 '''http://www.cnblogs.com/kaituorensheng/p/3287652.html'''

ascii文件

0     0    00    nul
1     1    01    soh
2     2    02    stx
3     3    03    etx
4     4    04    eot
5     5    05    enq
6     6    06    ack
7     7    07    bel
10     8    08    bs
11     9    09    ht
12     10    0a    nl
13     11    0b    vt
14     12    0c    ff
15     13    0d    er
16     14    0e    so
17     15    0f    si
20     16    10    dle
21     17    11    dc1
22     18    12    dc2
23     19    13    dc3
24     20    14    dc4
25     21    15    nak
26     22    16    syn
27     23    17    etb
30     24    18    can
31     25    19    em
32     26    1a    sub
33     27    1b    esc
34     28    1c    fs
35     29    1d    gs
36     30    1e    re
37     31    1f    us
40     32    20    sp
41     33    21    !
42     34    22    "
43     35    23    #
44     36    24    $
45     37    25    %
46     38    26    &amp;
47     39    27    `
50     40    28    (
51     41    29    )
52     42    2a    *
53     43    2b    +
54     44    2c    ,
55     45    2d    -
56     46    2e    .
57     47    2f    /
60     48    30    0
61     49    31    1
62     50    32    2
63     51    33    3
64     52    34    4
65     53    35    5
66     54    36    6
67     55    37    7
70     56    38    8
71     57    39    9
72     58    3a    :
73     59    3b    ;
74     60    3c    &lt;
75     61    3d    =
76     62    3e    &gt;
77     63    3f    ?
100     64    40    @
101     65    41    A
102     66    42    B
103     67    43    C
104     68    44    D
105     69    45    E
106     70    46    F
107     71    47    G
110     72    48    H
111     73    49    I
112     74    4a    J
113     75    4b    K
114     76    4c    L
115     77    4d    M
116     78    4e    N
117     79    4f    O
120     80    50    P
121     81    51    Q
122     82    52    R
123     83    53    S
124     84    54    T
125     85    55    U
126     86    56    V
127     87    57    W
130     88    58    X
131     89    59    Y
132     90    5a    Z
133     91    5b    [
134     92    5c    \
135     93    5d    ]
136     94    5e    ^
137     95    5f    _
140     96    60    '
141     97    61    a
142     98    62    b
143     99    63    c
144     100    64    d
145     101    65    e
146     102    66    f
147     103    67    g
150     104    68    h
151     105    69    i
152     106    6a    j
153     107    6b    k
154     108    6c    l
155     109    6d    m
156     110    6e    n
157     111    6f    o
160     112    70    p
161     113    71    q
162     114    72    r
163     115    73    s
164     116    74    t
165     117    75    u
166     118    76    v
167     119    77    w
170     120    78    x
171     121    79    y
172     122    7a    z
173     123    7b    {
174     124    7c    |
175     125    7d    }
176     126    7e    ~
177     127    7f    del

 

posted @ 2017-08-11 17:28  huanglei2010  阅读(269)  评论(0)    收藏  举报