import tkinter as tk
from tkinter import ttk
import tkinter.messagebox
root=tk.Tk()
root.geometry('800x600+350+100')
root.title('进制转换小工具')input_text=tk.Text(root,height=2,width=16)
input_text.place(x=250,y=1)
output_text=tk.Text(root,height=2,width=16)
output_text.place(x=400,y=1)
combo=ttk.Combobox(root,values=['10->2','2->10','10->8','8->10','10->16','16->10',])
combo.place(x=300,y=40)
combo.set('10->2')
his_text = tk.Text(root,height=4,width=44)
his_text.place(x=225,y=110)
def click_int_to_bin():get_input_text = input_text.get('1.0','end')if get_input_text.strip() == '' or get_input_text.strip() == ' ' or get_input_text.strip() is None:tkinter.messagebox.showinfo('提示','未输入需要转换的初始值')return 0get_combo=combo.get()output_text.delete('1.0','end')if get_combo=='10->2':a = bin(int(get_input_text))elif get_combo=='2->10':a = int(get_input_text, 2)elif get_combo=='8->10':a = int(get_input_text, 8)elif get_combo=='10->8':a = oct(int(get_input_text))elif get_combo=='16->10':a = int(get_input_text, 16)elif get_combo=='10->16':a = hex(int(get_input_text))else:tkinter.messagebox.showinfo('提示', '你选择的编码形式错误或者字符类型错误')output_text.insert('1.0',a)history=get_combo,':',get_input_text.strip(),'-->',ahis_text.delete('1.0', 'end')his_text.insert('1.0',history)button1=tk.Button(root,font=('Arial',10),text='转换进制',command=click_int_to_bin)
button1.place(x=225,y=70)root.mainloop()