python的Tkinter库简单应用——开发一个简易计算器
利用python的Tkinter庫開發一個簡易計算器
文章目錄
- 利用python的Tkinter庫開發一個簡易計算器
 
- 前言
- 一、實驗準備
- 二、開發步驟步驟
- 1.引入庫
- 2.界面設計
- 3.關鍵——實現Tkinter庫的調用
 
- 總結
前言
任何主流語言都可以開發一個簡易的計算器,本篇我們將選用python來開發!附源代碼
提示:以下是本篇文章正文內容,下面案例可供參考
一、實驗準備
1.開發軟件選用——jupyter notebook
 能編寫python的軟件有很多,本次實驗我使用,當你要使用jupyter notebook首先要安裝anaconda,安裝的教程如下Anaconda 的安裝教程(圖文)但要注意的是Anaconda國內安裝的清華源不可用,需要用到清華鏡像,可在百度自查,這里就不附鏈接了。
2.圖形界面的實現——Tkinter
當我們用python實現圖形界面是,我們不得不用到的包就是Tkinter。Tkinter 是使用 python 進行窗口視窗設計的模塊。Tkinter模塊(“Tk 接口”)是Python的標準Tk GUI工具包的接口。作為 python 特定的GUI界面,是一個圖像的窗口,tkinter是python 自帶的,可以編輯的GUI界面,我們可以用GUI 實現很多直觀的功能,比如想開發一個計算器,如果只是一個程序輸入,輸出窗口的話,是沒用用戶體驗的。所有開發一個圖像化的小窗口,就是必要的。因為其語言簡單易讀,容易上手,這也是我選擇python來做一個計算器的原因。若想詳細了解Tkinter,可以看下大佬的詳解,附鏈接:Python GUI之tkinter窗口視窗教程大集合
二、開發步驟步驟
1.引入庫
這時候我們要調用python的Tkinter和math兩個包,需要注意的是在python3以后Tkinter的調用‘T’是大寫!!!不然編譯會報錯。
 代碼如下:
2.界面設計
程序設計主要分兩大部分,一部分是界面設計,另一部分則是實現計算。首先我們來看下界面設計。首先我們先搭建一個框架,可以利用循環來補入按鍵,在這之前我們要注意給計算器初始化
 代碼如下(示例):
接下來就是實現算法部分了,在以往c++中為了實現一個多項式如:2-(3-2),當一下子多項式輸入在計算器中,這一類關于括號優先級問題就得被考慮,還需要將數字和符號分別壓入堆棧,判斷優先級,當我們使用python時,則可以通過Tkinter文本框(entry)來實現entry的用法有很多,可看Python XML解析來了解更多,這里就不一一贅述了
 代碼如下:
3.關鍵——實現Tkinter庫的調用
python提供了多個圖形開發界面的庫,常用的庫就用Tkinter,使用Tkinter可以大大減少代碼的行數,思路也較為清晰簡單,簡單易讀,但在編寫過程中,主要通過運用Tkinter的函數,這也使得程序的算法沒有那么的突出。
總結
本文僅僅簡單介紹了Tkinter的使用,來開發一個簡易的計算器。大家可以根據可以通過下面的源代碼,運行下來試一下,另附演示動圖。另外對于本文中提到的Tkinter庫有感興趣的可以看下上面的鏈接,很詳細源代碼
import tkinter as tk class Calculator(tk.Tk):"""計算器窗體類"""def __init__(self):"""初始化實例"""tk.Tk.__init__(self)self.title("我的計算器")self.memory = 0 # 暫存數值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 == "=": # 輸出結果result = eval(self.entry.get())#獲取文本框輸入的值(值為=)self.entry.insert(tk.END, " = " + str(result))#在’=‘后輸出計算結果elif key == "C": # 清空輸入框self.entry.delete(0, tk.END)#將結果清零elif key == "+/-": # 取相反數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()總結
以上是生活随笔為你收集整理的python的Tkinter库简单应用——开发一个简易计算器的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Redis优化及配置
- 下一篇: Jetson连接百兆交换机丢包笔记
