进制转换器
(一)首先让我们来创建窗口基础,我相信这里大家都会
1,
import tkinter as tk
from tkinter import *
win = tk.Tk()
win.title("进制转换器 1.1")
win.geometry("800x200")
title = tk.Label(win,text="十进制到二进制的转换 \n-------------------------------------------------")
title.grid(row=0,column=1)
t1 = tk.Label(win,text="请插入数字")
t1.grid(row=1,column=0)
解释;
1.import tkinter as tk:导入Tkinter库并使用别名tk。
2.from tkinter import *:从Tkinter库中导入所有的模块,这样就可以直接使用Tkinter提供的各种功能。
3.win = tk.Tk():创建一个Tkinter窗口对象,并将其赋值给变量win。
4.win.title(“进制转换器 1.1”):设置窗口的标题为"进制转换器 1.1"。
5.win.geometry(“800x200”):设置窗口的大小为宽800像素、高200像素。
6.title = tk.Label(win,text=“十进制到二进制的转换 \n-------------------------------------------------”):创建一个标签对象title,用于显示标题信息。
7.title.grid(row=0,column=1):将标题标签放置在窗口的第0行、第1列的位置。
8.t1 = tk.Label(win,text=“请插入数字”):创建一个标签对象t1,用于提示用户插入数字。
9.t1.grid(row=1,column=0):将提示标签放置在窗口的第1行、第0列的位置。
(二)然后是需要转换的十进制数字输入窗口
text = tk.Entry(win,bd=5,width=15)
text.grid(row=2,column=0,sticky=W)
解释:
这段代码创建了一个文本输入框,并将其放置在GUI窗口中。下面是对代码的详细解释:
text = tk.Entry(win, bd=5, width=15)
:创建了一个文本输入框对象text
,并设置了边框宽度为5,宽度为15个字符。text.grid(row=2, column=0, sticky=W)
:将文本输入框放置在GUI窗口中的第2行、第0列的位置,并使用sticky=W
参数指定对齐方式为西(左对齐)。
通过这段代码,用户可以在GUI窗口中输入要转换的十进制数字,输入框的宽度为15个字符,边框宽度为5,方便用户输入并进行转换操作。
bit_labels = []
bit_text_boxes = []
解释:
这两行代码创建了两个空列表bit_labels
和bit_text_boxes
,用于存储后续生成的标签和文本框对象。这些列表将用于在GUI窗口中显示二进制数字的每一位,以便用户查看和理解转换结果。
(三)第一个for循环,创建显示转换后的2进制文本框
代码中的两个for循环部分分别用于创建8个标签和8个文本框,用于显示二进制数字的每一位。
第一部分循环:
for i in range(7, -1, -1):
label_text = "bit" + str(i)
label = tk.Label(win, text=label_text)
label.grid(row=3, column=9 - i)
bit_labels.append(label)
在这个循环中,从7到0逆序循环,创建了8个Label对象,标签文本为"bit0"到"bit7",然后将这些标签依次放置在窗口中的不同列,以便显示每一位二进制数字的位置。
第二部分循环:
text_box = tk.Text(win, bd=5, width=5, height=3)
text_box.grid(row=2, column=9 - i, sticky=tk.W)
bit_text_boxes.append(text_box)
在这个循环中,同样从7到0逆序循环,创建了8个Text对象,用于显示二进制数字的每一位。然后将这些文本框依次放置在窗口中的不同列,以便用户输入十进制数后,显示对应的二进制位。
(四)第二个for循环,小程序核心
def Click_Me():
# 清空所有文本框
for text_box in bit_text_boxes:
text_box.delete(1.0, END)
n = str(bin(int(text.get())))
m = n.replace("0b", "")
if len(m) <= 8:
m = (8 - len(m)) * "0" + m
for i in range(8):
bit_text_boxes[i].insert(END, m[i])
这段代码使用Tkinter库创建了一个简单的GUI窗口,包括窗口标题、大小、标签等组件的设置。下面是对代码的详细解释:
import tkinter as tk
:导入Tkinter库并使用别名tk。from tkinter import *
:从Tkinter库中导入所有的模块,这样就可以直接使用Tkinter提供的各种功能。win = tk.Tk()
:创建一个Tkinter窗口对象,并将其赋值给变量win
。win.title("进制转换器 1.1")
:设置窗口的标题为"进制转换器 1.1"。win.geometry("800x200")
:设置窗口的大小为宽800像素、高200像素。title = tk.Label(win,text="十进制到二进制的转换 \n-------------------------------------------------")
:创建一个标签对象title
,用于显示标题信息。title.grid(row=0,column=1)
:将标题标签放置在窗口的第0行、第1列的位置。t1 = tk.Label(win,text="请插入数字")
:创建一个标签对象t1
,用于提示用户插入数字。t1.grid(row=1,column=0)
:将提示标签放置在窗口的第1行、第0列的位置。
(五)创建运行按钮
butt = tk.Button(win,text="Click Me",command=Click_Me)
butt.grid(row=2,column=1,sticky=W)
win.mainloop()