Python学习笔记408

简介: Python GUI编程(Tkinter)

字符串转 md5 工具(Python3 下运行):

#!/usr/bin/env python

# -*- coding: utf-8 -*-


from tkinter import*

import hashlib

import time


LOG_LINE_NUM =0


class MY_GUI():

   def __init__(self,init_window_name):

       self.init_window_name = init_window_name



   #设置窗口

   def set_init_window(self):

       self.init_window_name.title("文本处理工具_v1.2")           #窗口名

       #self.init_window_name.geometry('320x160+10+10')                         #290 160为窗口大小,+10 +10 定义窗口弹出时的默认展示位置

       self.init_window_name.geometry('1068x681+10+10')

       #self.init_window_name["bg"] = "pink"                                    #窗口背景色,其他背景色见:blog.csdn.net/chl0000/article/details/7657887

       #self.init_window_name.attributes("-alpha",0.9)                          #虚化,值越小虚化程度越高

       #标签

       self.init_data_label =Label(self.init_window_name, text="待处理数据")

       self.init_data_label.grid(row=0, column=0)

       self.result_data_label =Label(self.init_window_name, text="输出结果")

       self.result_data_label.grid(row=0, column=12)

       self.log_label =Label(self.init_window_name, text="日志")

       self.log_label.grid(row=12, column=0)

       #文本框

       self.init_data_Text =Text(self.init_window_name, width=67, height=35)  #原始数据录入框

       self.init_data_Text.grid(row=1, column=0, rowspan=10, columnspan=10)

       self.result_data_Text =Text(self.init_window_name, width=70, height=49)  #处理结果展示

       self.result_data_Text.grid(row=1, column=12, rowspan=15, columnspan=10)

       self.log_data_Text =Text(self.init_window_name, width=66, height=9)  # 日志框

       self.log_data_Text.grid(row=13, column=0, columnspan=10)

       #按钮

       self.str_trans_to_md5_button =Button(self.init_window_name, text="字符串转MD5", bg="lightblue", width=10,command=self.str_trans_to_md5)  # 调用内部方法  加()为直接调用

       self.str_trans_to_md5_button.grid(row=1, column=11)



   #功能函数

   def str_trans_to_md5(self):

       src =self.init_data_Text.get(1.0,END).strip().replace("\n","").encode()

       #print("src =",src)

       if src:

           try:

               myMd5 = hashlib.md5()

               myMd5.update(src)

               myMd5_Digest = myMd5.hexdigest()

               #print(myMd5_Digest)

               #输出到界面

               self.result_data_Text.delete(1.0,END)

               self.result_data_Text.insert(1.0,myMd5_Digest)

               self.write_log_to_Text("INFO:str_trans_to_md5 success")

           except:

               self.result_data_Text.delete(1.0,END)

               self.result_data_Text.insert(1.0,"字符串转MD5失败")

       else:

           self.write_log_to_Text("ERROR:str_trans_to_md5 failed")



   #获取当前时间

   def get_current_time(self):

       current_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

       return current_time



   #日志动态打印

   def write_log_to_Text(self,logmsg):

       global LOG_LINE_NUM

       current_time =self.get_current_time()

       logmsg_in = str(current_time)+" "+ str(logmsg)+"\n"      #换行

       if LOG_LINE_NUM <=7:

           self.log_data_Text.insert(END, logmsg_in)

           LOG_LINE_NUM = LOG_LINE_NUM +1

       else:

           self.log_data_Text.delete(1.0,2.0)

           self.log_data_Text.insert(END, logmsg_in)



def gui_start():

   init_window =Tk()              #实例化出一个父窗口

   ZMJ_PORTAL = MY_GUI(init_window)

   # 设置根窗口默认属性

   ZMJ_PORTAL.set_init_window()


   init_window.mainloop()          #父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示



gui_start()

相关文章
|
3月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
565 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
3月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
185 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
3月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
203 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
3月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
76 1
|
3月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
157 1
|
3月前
|
索引 Python
Python学习笔记编程小哥令狐~持续更新、、、(上)
Python学习笔记编程小哥令狐~持续更新、、、(上)
56 2
|
3月前
|
存储 Python
Python学习笔记编程小哥令狐~持续更新、、、 (下)
Python学习笔记编程小哥令狐~持续更新、、、 (下)
42 1
|
3月前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
49 0
【免费分享编程笔记】Python学习笔记(二)
|
3月前
|
Java 编译器 Go
Python学习笔记--- day01计算机基础和环境搭建(一)
Python学习笔记--- day01计算机基础和环境搭建(一)
52 2
|
3月前
|
程序员 编译器 Python
Python学习笔记--- day01计算机基础和环境搭建(二)
Python学习笔记--- day01计算机基础和环境搭建(二)
54 1