前言
前言
作为一个刚学习python的网管,打算学着自己写一些小工具来用,提高一些效率,减少一些重复性工作;
自己学习做了一个测试网络通断的工具
一、导入使用到的模块
使用了tkinter和os模块
import tkinter
import os
import time
二、创建GUI界面
1.定义窗口属性
创建一个宽600,高500的窗口
代码如下:
#定义窗口
ma = tkinter.Tk()
#定义窗口属性
ma.title('网络测试工具')
ma.geometry('600x500')
2.定义GUI界面
创建了IP地址的输入框和测试的次数输入框
代码如下:
#定义ip标签
ip_l = tkinter.Label(ma,text = 'ip',width = 5).grid(row = 0,column = 0)
ip_list = [[192,168,0,1]]
#定义ip地址
var1 = tkinter.StringVar(value=ip_list[0][0])
ip_1l = tkinter.Entry(ma,width = 5,textvariable = var1)
ip_1l.grid(row = 0,column = 1)
var2 = tkinter.StringVar(value=ip_list[0][1])
ip_2l = tkinter.Entry(ma,width = 5,textvariable = var2)
ip_2l.grid(row = 0,column = 2)
var3 = tkinter.StringVar(value=ip_list[0][2])
ip_3l = tkinter.Entry(ma,width = 5,textvariable = var3)
ip_3l.grid(row = 0,column = 3)
var4 = tkinter.StringVar(value=ip_list[0][3])
ip_4l = tkinter.Entry(ma,width = 5,textvariable = var4)
ip_4l.grid(row = 0,column = 4)
#定义输出结果
res_l = tkinter.Text(ma)
res_l.grid(row = 1,column = 0,columnspan = 7)
#定义ping的次数
var = tkinter.StringVar(value=4)
num_l = tkinter.Entry(ma,width = 5,textvariable = var)
num_l.grid(row = 0,column = 6)
3.定义测试的函数
#定义ping命令函数
def ip_ping():
num = int(num_l.get())
ip = str(ip_1l.get()) + '.' + str(ip_2l.get()) + '.' + str(ip_3l.get()) + '.' + str(ip_4l.get())
result = os.popen('ping %s -n %s' % (ip,num))
a = result.read()
res_l.insert('end',a)
res_l.insert('end','--------------------------------------')
res_l.insert('end',time.asctime( time.localtime(time.time()) ))
4.添加执行函数的按钮
#定义ping按钮
ping_b = tkinter.Button(ma,text = 'ping',command = ip_ping).grid(row = 0,column = 5)
最后循环窗口:
ma.mainloop()
执行结果
现在程序的问题是结果只有在全部执行完才会显示,还没有学到怎么实时显示结果;
打算持续完善,并添加各种网络测试功能;
|