Python3.6+tkinter+logging 实现简单的UI界面以及生成log

MAC OS Python3.6 用tkinter实现简单的布局,加上ping、time和logging模块测试连通性并生成log

#需要导入的模块
import os
import sys
import tkinter as tk
import time,timeit
import logging
import os.path
from logging import handlers

#主界面
window=tk.Tk() #窗口函数
window.title(‘window’) #窗口的名字
window.geometry(‘400x400’) #窗口的大小,x是字母

#IP显示label和entry
tk.Label(window,text=“ip address:”).grid(row=0) #grid是布局,0表示放在第一行
ip = tk.Entry(window) #设置IP entry
ip.grid(row=0,column=1) #放在第一行,第一列

#port显示label和entry
tk.Label(window,text=“port:”).grid(row=1) #将port放在第二行
port = tk.Entry(window) #设置port entry
port.grid(row=1,column=1) #放在第二行,第一列

log_format = “%(asctime)s - %(name)s - %(levelname)s - %(message)s” #log的格式设定
time_format = “%Y-%m-%d %H:%M:%S” #时间格式设定
logging.basicConfig(filename=‘test.log’,level=logging.INFO,format=log_format,datefmt=time_format) #log名字,等级设定,log默认生成在该py文件所在目录

#ping方法
def ping():
backinfo = os.system('ping -c 5 ’ + ip.get()) #丢包5次
if backinfo == 0: #返回0为True
showinfo(“connect ok”) #显示在text中
logging.info(“connect ok”) #显示在log中
else:
showinfo(“connect fail”) #显示在text中
logging.info(“connect fail”) #显示在log中
ping_button = tk.Button(window,text=“connect”,font=(‘Arial’,20),command=ping).grid(row=0,column=2) #设置ping button,放在第一行,第二列

#显示text定义
text = tk.Text(window,width=50,height=50) #设置高度和宽度

#定义信息显示的方法
def showinfo(result):
realtime = time.strftime("%Y-%m-%d %H:%M:%S ")
textvar = realtime + result #系统时间和传入结果
text.insert(‘end’,textvar) #显示在text框里面
text.insert(‘insert’,’\n’) #换行

#定义清除方法
def clear():
text.delete(0.0,tk.END) #清楚text中的内容,0.0为删除全部

#显示text
text.place(x=100,y=150) #place为布局,放在坐标为(100,150)的地方

#点击方法定义
def hit(temp):
if temp == “start”:
showinfo(“start testing”) #显示在text中的内容
showinfo(“result is …”)
logging.info(“program is running”) #显示在log中的内容
else:
showinfo(“stop testing”) #显示在text中的内容
logging.info(“program stopped”) #显示在log中的内容

start_button = tk.Button(window,text=“Start”,font=(‘Arial’,20),command=lambda:hit(“start”)).place(x=100,y=100) #设置开始button
stop_button = tk.Button(window,text=“Stop”,font=(‘Arial’,20),command=lambda:hit(“stop”)).place(x=200,y=100) #设置停止button
clear_button = tk.Button(window,text=‘Clear’,font=(‘Arial’,20),command=clear) #设置清除button
clear_button.place(x=300,y=100) #显示清除button

window.mainloop() #界面循环

结果展示:
1.界面显示
Python3.6+tkinter+logging 实现简单的UI界面以及生成log_第1张图片
2.连通性测试,测试IP 127.0.0.1(这是回环地址)
终端结果
Python3.6+tkinter+logging 实现简单的UI界面以及生成log_第2张图片
界面结果
Python3.6+tkinter+logging 实现简单的UI界面以及生成log_第3张图片
3.button测试
开始
Python3.6+tkinter+logging 实现简单的UI界面以及生成log_第4张图片
停止
Python3.6+tkinter+logging 实现简单的UI界面以及生成log_第5张图片
清除
Python3.6+tkinter+logging 实现简单的UI界面以及生成log_第6张图片
4.log生成
在这里插入图片描述
以上。

你可能感兴趣的:(Python学习,python,tkinter,macos,ui,logging)