Python3的tkinter写一个简单的小程序
生活随笔
收集整理的這篇文章主要介紹了
Python3的tkinter写一个简单的小程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、這個學期開始學習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:分享是非??鞓返?/span>
轉載于:https://www.cnblogs.com/binlmmhc/p/6165198.html
總結
以上是生活随笔為你收集整理的Python3的tkinter写一个简单的小程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zip-gzip-bzip2_压缩文件
- 下一篇: 阿里发布《2015-2016中国云栖创新