Python3的tkinter写一个简单的小程序

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

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

二、运行程序截图:

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

三、程序的设计:

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

import os
import sys
import base64
import hashlib
import tkinter as tk

def main():
    root = tk.Tk() // 这里
    #fix the root window size
    root.minsize(380, 530)
    root.maxsize(380, 530) //这里主要是控制窗口的大小,让窗口大小不能改变
    #root.geometry("1366x250")
    root.title(‘Bin_LmmH_C Decoder‘) //设置主窗口的标题
    #display the quit button
    text = 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 editor
    clear1 = 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 editor
    clear2 = 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 = 0
    b64en = 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 += 1
    return but

def 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 False
    result.insert(1.0, res.decode(‘ascii‘))
    return True

def 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 False
    result.insert(1.0, res.decode(‘ascii‘))
    return True

def 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 character
        res.update(dec[0:-1].encode(‘ascii‘))
    except:
        return False
    result.insert(1.0, res.hexdigest()) //将md5后的数据插入到输出edit控件中
    return True

if __name__ == ‘__main__‘:
    main()

四、简单的自我总结:

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

时间: 2024-10-11 03:19:40

Python3的tkinter写一个简单的小程序的相关文章

Python入门 —— 用pycharm写一个简单的小程序3

环境:Win10操作系统:Python3.7:Pycharm 题目来源:PTA 编程实例1:日期格式化 世界上不同国家有不同的写日期的习惯.比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”.下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期. 输入格式: 输入在一行中按照“mm-dd-yyyy”的格式给出月.日.年.题目保证给出的日期是1900年元旦至今合法的日期. 输出格式: 在一行中按照“yyyy-mm-dd”的格式给出年.月.日. 输入样例: 03-15-20

DuiVision开发教程(2)-如何写一个简单的界面程序

基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说明如何写一个简单的界面程序. 第一步:使用VC向导创建一个有两个tab页面的DuiVision工程 向导生成的解决方案文件如下: 默认有两个工程,分别是DuiVision库和应用程序工程.自动生成的代码目录中bin目录下的内容那个如下,bkimg目录存放窗口背景图片,skins目录存放图片资源,xm

输出多行字符的一个简单JAVA小程序

1 public class JAVA 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("----------------------"); 6 System.out.println("|| 我要学会 ||"); 7 System.out.println("|| JAVA语言 ||"); 8 System.out.println("-------

初遇C#:一个简单的小程序(圆形周长,面积计算器)

作为一个面向对象的语言,与用户的交互很关键! 在此,我们可以先分析一下我们这个小程序要与用户交互的内容:1.命名很重要,让用户看见这个程序就知道这个程序的作用. 2.当用户打开这个程序时,提示用户输入的内容. 下面开始编码: Console.Write("请输入圆形的半径:"); double r=double.Parse(Console.ReadLine());//接收用户的输入并将用户的输入转换成双精度型并赋值给r double area,circle;//定义两个变量area和c

C++写一个排列组合小程序

今天突然想到一个问题,有时候,针对同一个事件有多种反映,特别是游戏AI当中,这种情况下需要采取最适合的方案,哪种方案最适合,可以将每种方案的结果或影响都计算一遍,从而选择最合适的.最基本就是一个排列组合方法,将各种方案都组合出来.于是写了一个基本的N个数排列组合小程序! 开发工具:Visual Studio 2012 CTestPermutation::~CTestPermutation() { cout<<">>>>>>>>>&

使用Python3的tkinter制作一个简单的计算器界面

1 #!/usr/bin/python3 2 #-*-coding:utf-8-*- 3 import tkinter 4 import tkinter.font 5 6 class Calculate(): 7 def __init__(self): 8 self.tk=tkinter.Tk(); 9 self.tk.title("Calculate"); 10 11 self.tk.resizable(0,0); 12 self.showfont=tkinter.font.Font

cpp学习笔记 1一个简单的小程序以及一些的知识点

今天买的cpp到了从今天開始又一次学习cpp如今发现学校发的书真的不怎莫样. <em>#include<stdio.h>//预处理命令 int main()/*第一个被调用的函数.能够比作是一个房子的门()代表main是一个函数. int 指明了返回值的类型*/ { int num;/*声明语句.声明了两件事一有一个名为num的变量二int 说明生命的变量 是一个整形. int是一个keyword num 是一个标示符 */ num = 1;//给变量赋值 printf("

python初尝试,写一个简单的爬虫程序

1.首先因为mac自带python,版本为python2.7.10 2.安装pip,因为已经有了,所以不能用brew install.这里用sudo easy_install pip 3.安装beatifulsoup4,sudo -H pip install beautifulsoup4. BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. 4.安装html5lib,sudo pip insta

用c++写一个简单的计算器程序

// 050305.cpp : 定义控制台应用程序的入口点.// // 050304.cpp : 定义控制台应用程序的入口点.////四则运算#include "stdafx.h"#include<iostream>#include<stdio.h>using namespace std;void add(){ printf("输入要计算的加数(例如a b)\n"); int adda=0, addb=0,addc=0; cin >&g