python的Tkinter库简单应用——开发一个简易计算器
利用python的Tkinter庫開發(fā)一個(gè)簡易計(jì)算器
文章目錄
- 利用python的Tkinter庫開發(fā)一個(gè)簡易計(jì)算器
- 前言
- 一、實(shí)驗(yàn)準(zhǔn)備
- 二、開發(fā)步驟步驟
- 1.引入庫
- 2.界面設(shè)計(jì)
- 3.關(guān)鍵——實(shí)現(xiàn)Tkinter庫的調(diào)用
- 總結(jié)
前言
任何主流語言都可以開發(fā)一個(gè)簡易的計(jì)算器,本篇我們將選用python來開發(fā)!附源代碼
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、實(shí)驗(yàn)準(zhǔn)備
1.開發(fā)軟件選用——jupyter notebook
能編寫python的軟件有很多,本次實(shí)驗(yàn)我使用,當(dāng)你要使用jupyter notebook首先要安裝anaconda,安裝的教程如下Anaconda 的安裝教程(圖文)但要注意的是Anaconda國內(nèi)安裝的清華源不可用,需要用到清華鏡像,可在百度自查,這里就不附鏈接了。
2.圖形界面的實(shí)現(xiàn)——Tkinter
當(dāng)我們用python實(shí)現(xiàn)圖形界面是,我們不得不用到的包就是Tkinter。Tkinter 是使用 python 進(jìn)行窗口視窗設(shè)計(jì)的模塊。Tkinter模塊(“Tk 接口”)是Python的標(biāo)準(zhǔn)Tk GUI工具包的接口。作為 python 特定的GUI界面,是一個(gè)圖像的窗口,tkinter是python 自帶的,可以編輯的GUI界面,我們可以用GUI 實(shí)現(xiàn)很多直觀的功能,比如想開發(fā)一個(gè)計(jì)算器,如果只是一個(gè)程序輸入,輸出窗口的話,是沒用用戶體驗(yàn)的。所有開發(fā)一個(gè)圖像化的小窗口,就是必要的。因?yàn)槠湔Z言簡單易讀,容易上手,這也是我選擇python來做一個(gè)計(jì)算器的原因。若想詳細(xì)了解Tkinter,可以看下大佬的詳解,附鏈接:Python GUI之tkinter窗口視窗教程大集合
二、開發(fā)步驟步驟
1.引入庫
這時(shí)候我們要調(diào)用python的Tkinter和math兩個(gè)包,需要注意的是在python3以后Tkinter的調(diào)用‘T’是大寫!!!不然編譯會報(bào)錯(cuò)。
代碼如下:
2.界面設(shè)計(jì)
程序設(shè)計(jì)主要分兩大部分,一部分是界面設(shè)計(jì),另一部分則是實(shí)現(xiàn)計(jì)算。首先我們來看下界面設(shè)計(jì)。首先我們先搭建一個(gè)框架,可以利用循環(huán)來補(bǔ)入按鍵,在這之前我們要注意給計(jì)算器初始化
代碼如下(示例):
接下來就是實(shí)現(xiàn)算法部分了,在以往c++中為了實(shí)現(xiàn)一個(gè)多項(xiàng)式如:2-(3-2),當(dāng)一下子多項(xiàng)式輸入在計(jì)算器中,這一類關(guān)于括號優(yōu)先級問題就得被考慮,還需要將數(shù)字和符號分別壓入堆棧,判斷優(yōu)先級,當(dāng)我們使用python時(shí),則可以通過Tkinter文本框(entry)來實(shí)現(xiàn)entry的用法有很多,可看Python XML解析來了解更多,這里就不一一贅述了
代碼如下:
3.關(guān)鍵——實(shí)現(xiàn)Tkinter庫的調(diào)用
python提供了多個(gè)圖形開發(fā)界面的庫,常用的庫就用Tkinter,使用Tkinter可以大大減少代碼的行數(shù),思路也較為清晰簡單,簡單易讀,但在編寫過程中,主要通過運(yùn)用Tkinter的函數(shù),這也使得程序的算法沒有那么的突出。
總結(jié)
本文僅僅簡單介紹了Tkinter的使用,來開發(fā)一個(gè)簡易的計(jì)算器。大家可以根據(jù)可以通過下面的源代碼,運(yùn)行下來試一下,另附演示動圖。另外對于本文中提到的Tkinter庫有感興趣的可以看下上面的鏈接,很詳細(xì)源代碼
import tkinter as tk class Calculator(tk.Tk):"""計(jì)算器窗體類"""def __init__(self):"""初始化實(shí)例"""tk.Tk.__init__(self)self.title("我的計(jì)算器")self.memory = 0 # 暫存數(shù)值self.Demo()def Demo(self):"""Create the Demo"""btn_list = ["C", "(", ")", "/","7", "8", "9", "*","4", "5", "6", "-","1", "2", "3", "+","+/-", "0", ".", "="]r = 1c = 0for b in btn_list:self.button = tk.Button(self, text=b, width=5,command=(lambda x=b: self.operate(x)))self.button.grid(row=r, column=c, padx=3, pady=6)c += 1if c > 3:c = 0r += 1self.entry = tk.Entry(self, width=21, borderwidth=3,bg="light blue", font=("黑體", 11))self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)def operate(self, key):"""press the button"""if key == "=": # 輸出結(jié)果result = eval(self.entry.get())#獲取文本框輸入的值(值為=)self.entry.insert(tk.END, " = " + str(result))#在’=‘后輸出計(jì)算結(jié)果elif key == "C": # 清空輸入框self.entry.delete(0, tk.END)#將結(jié)果清零elif key == "+/-": # 取相反數(shù)if "=" in self.entry.get():self.entry.delete(0, tk.END)elif self.entry.get()[0] == "-":self.entry.delete(0)else:self.entry.insert(0, "-")else: # 其他鍵if "=" in self.entry.get():self.entry.delete(0, tk.END)self.entry.insert(tk.END, key)if __name__ == "__main__":Calculator().mainloop()總結(jié)
以上是生活随笔為你收集整理的python的Tkinter库简单应用——开发一个简易计算器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis优化及配置
- 下一篇: 如何用Python从TripAdviso