一、这个学期开始学习python,但是看了python2和python3,最后还是选择了python3

本着熟悉python的原因,并且也想做一些小程序来增加自己对python的熟练度。所以写了一个简单的程序,这个小程序实现了basa64、base32的加解码。并且添加了一个md5生成的功能。ps:觉得python开发也挺好玩的。。。

二、运行程序截图:

上面的就是程序的整体界面了。。

三、程序的设计:

源代码就在下面贴图了,并且需要的文档可以--------------搜索吧。。。。。

import os
import sys
import base64
import hashlib
import tkinter as tkdef main():root = tk.Tk() // 这里#fix the root window sizeroot.minsize(380, 530)root.maxsize(380, 530) //这里主要是控制窗口的大小,让窗口大小不能改变#root.geometry("1366x250")root.title('Bin_LmmH_C Decoder') //设置主窗口的标题#display the quit buttontext = edit(root)        //l = tk.Label(root, text='My name is Bin_LmmH_C', fg='white', bg='black', width=30)l.grid(sticky=tk.E+tk.W+tk.S+tk.N)button(root, text)#quitbutton(root)root.mainloop()   // 这里进入顶层窗口的循环

#build the edit and result Text,建立两个edit控件
def edit(root):edit = tk.Text(root, fg='white', bg='green', font='微软雅黑', width=30, height=10,)edit.grid(sticky=tk.N+tk.E+tk.W)#button 传递参数使用lambda函数#delete all the value in the text editorclear1 = tk.Button(root, text='Clear', width=27, bg='yellow', font='微软雅黑', command=lambda :edit.delete(1.0, tk.END))clear1.grid()result = tk.Text(root, fg='white', bg='green', font='微软雅黑', width=30, height=10,)result.grid(sticky=tk.N+tk.E+tk.W)#button 传递参数使用lambda函数#delete all the value in the text editorclear2 = tk.Button(root, text='Clear', width=27, bg='yellow', font='微软雅黑', command=lambda :result.delete(1.0, tk.END))clear2.grid()text = [edit, result]return text
//这里定义窗口中所有的按钮控件,并且显示出来,并且设置好每个按钮的响应函数,使用button的command选项来控制
def button(root, text):clu = 0b64en = tk.Button(root, text='Base64 Encode', fg='white', bg='green', command=lambda :b64encode(text))b64de = tk.Button(root, text='Base64 Decode', fg='white', bg='green', command=lambda :b64decode(text))b32en = tk.Button(root, text='Base32 Encode', fg='white', bg='green', command=lambda :b32encode(text))b32de = tk.Button(root, text='Base32 Decode', fg='white', bg='green', command=lambda :b32encode(text))md5do = tk.Button(root, text='-Md5  Creator-', fg='white', bg='green', command=lambda :md5create(text))but = [b64en, b64de, b32en, b32de, md5do]for i in but:i.grid(row=clu, column=1, sticky=tk.N+tk.S+tk.E+tk.W)clu += 1return butdef b64encode(text):#print(len(text), text)edit, result = text[0], text[1]enc = edit.get(1.0,tk.END)try:res = base64.b64encode(enc[0:-1].encode('ascii'))#print("res = ", res)except:return Falseresult.insert(1.0, res.decode('ascii'))return Truedef b64decode(text):#print(len(text), text)edit, result = text[0], text[1]dec = edit.get(1.0,tk.END)try:res = base64.b64decode(dec[0:-1].encode('ascii'))except:return Falseresult.insert(1.0, res.decode('ascii'))return Truedef b32encode(text):#print(len(text), text)edit, result = text[0], text[1]enc = edit.get(1.0,tk.END)try:res = base64.b32encode(enc[0:-1].encode('ascii'))result.insert(1.0, res.decode('ascii'))except:return False#showmessage(None, 'Something Error')return True
//这里定义md5生成函数
def md5create(text):#print(len(text), text)edit, result = text[0], text[1]dec = edit.get(1.0,tk.END)         //获取edit控件中的内容#print("len dec = ", len(dec[0:-1]))#print("dec = ", dec)res = hashlib.md5()try:#it will add a new line characterres.update(dec[0:-1].encode('ascii'))except:return Falseresult.insert(1.0, res.hexdigest()) //将md5后的数据插入到输出edit控件中return True

if __name__ == '__main__':main()

四、简单的自我总结:

在进行这次小工具的制作之前,遇到了一些问题和一些小技巧,比如按钮传递参数的问题,就可以使用lambda这个表达式轻松的完成,而不用去考虑什么全局变量之类的,这个我感觉是非常方便的,遇到的问题都通过网络来解决了,感觉还是挺好的,但是我对于自己没有将问题记录下来这个坏习惯,我是非常不爽的,我会改变掉这个坏习惯。好好学习,天天向上。    ps:分享是非常快乐的

转载于:https://www.cnblogs.com/binlmmhc/p/6165198.html

Python3的tkinter写一个简单的小程序相关推荐

  1. python初学者可以做的金融小程序-Python入门 —— 用pycharm写一个简单的小程序3...

    环境:Win10操作系统:Python3.7:Pycharm 题目来源:PTA 编程实例1:日期格式化 世界上不同国家有不同的写日期的习惯.比如美国人习惯写成"月-日-年",而中国 ...

  2. python简单编程例子-Python入门 —— 用pycharm写一个简单的小程序3

    环境:Win10操作系统:Python3.7:Pycharm 题目来源:PTA 编程实例1:日期格式化 世界上不同国家有不同的写日期的习惯.比如美国人习惯写成"月-日-年",而中国 ...

  3. jmu-python-重复元素判定_Python入门 —— 用pycharm写一个简单的小程序2

    读入两个整数a和b,输出绝对值a和绝对值b的各对应位乘积之和,如a=1234,b=608,则输出值为:"1×0+2×6+3×0+4×8"的值,即44. 输入格式: 在一行中输入两个 ...

  4. python123程序设计题说句心里话_用c++写一个简单的计算器程序

    // 050305.cpp : 定义控制台应用程序的入口点. // // 050304.cpp : 定义控制台应用程序的入口点. // //四则运算 #include "stdafx.h&q ...

  5. c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  6. 一个简单的c 游戏编程语言,编程达人 c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  7. 3.2 Lucene实战:一个简单的小程序

    在讲解Lucene索引和检索的原理之前,我们先来实战Lucene:一个简单的小程序! 一.索引小程序 首先,new一个java project,名字叫做LuceneIndex. 然后,在project ...

  8. Java 百度AI 写一个简单的手势识别程序

    教程地址:请关注我的https://edu.csdn.net/course/detail/23001 Java写一个简单的手势识别程序,这里采用百度是AI,视觉技术中的人体分析中的手势识别,识别图片中 ...

  9. java递归怎么写_什么是递归?用Java写一个简单的递归程序

    什么是递归?用Java写一个简单的递归程序 递归的定义 递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决. 递归的要素 自定义递归函数,并确定函数的基本功能 ...

最新文章

  1. The Proposal of Service Oriented Data Mining System for Solving Real-Life Classification--阅读笔记
  2. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子
  3. CL_CRM_WEB_UTILITY
  4. android activity调用Adapter方法刷新列表UI,RecyclerView.Adapter
  5. ElasticSearch获取多个文档Multi GET API介绍
  6. android意图实验报告,Activity 常见的意图整理
  7. html+lt;input+file样式,不同内核的浏览器中文件选择控件的外观也不相同
  8. xml模块、项目开发过程
  9. Shell基本应用(学习笔记)
  10. springboot搞定全局自定义异常
  11. 《Java编程思想》读书笔记(14)
  12. 怎么卸载mysql2008_SQL Server 2008怎么卸载?SQL Server 2008完全卸载教程
  13. Axure最新激活码
  14. lcov和gcov的使用错误
  15. Excel应用技巧之二——常用函数
  16. 大学生数学竞赛试题荟萃 (更新至2017年10月28日)
  17. mysql既有整数又有小树字段类型,事业单位招考计算机专业知识试题
  18. 宁录哨兵机器人_漫威漫画里奥创、灭霸、哨兵机器人、天启谁更厉害?
  19. 音视频编解码学习详解h264 ,mpeg4 ,aac 等音视频格式
  20. 树莓派中的 IM 私有云支持多少并发?

热门文章

  1. docker ubuntu16.04镜像下安装cowrie蜜罐记录
  2. 汇编语言:实验10 根据材料编程—1.显示字符串
  3. 数据结构与算法:单链表(利用万能指针实现对任意类型数据进行操作)
  4. LeetCode15:三数之和(转载思路)
  5. 常见的爬虫分析库(1)-Python3中Urllib库基本使用
  6. char,short ,int ,long,long long,unsigned long long数据范围
  7. 数据结构--汉诺塔--借助栈实现非递归---Java
  8. Ubuntu 或 UbuntuKyKin14.04 Unity桌面风格与Gnome桌面风格的切换
  9. HISTFILESIZE与HISTSIZE的区别
  10. Ubuntu root 密码忘记-恢复