日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的Tkinter库简单应用——开发一个简易计算器

發布時間:2023/12/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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’是大寫!!!不然編譯會報錯。
代碼如下:

import math import tkinter as tk

2.界面設計

程序設計主要分兩大部分,一部分是界面設計,另一部分則是實現計算。首先我們來看下界面設計。首先我們先搭建一個框架,可以利用循環來補入按鍵,在這之前我們要注意給計算器初始化
代碼如下(示例):

class Calc(tk.Tk):"""計算器窗體類"""def __init__(self):"""初始化實例"""tk.Tk.__init__(self)self.title("我的計算器")self.memory = 0 # 暫存數值self.Demo()def Demo(self):"""創建界面"""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=24, borderwidth=2,bg="black", font=("黑體", 11))self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)

接下來就是實現算法部分了,在以往c++中為了實現一個多項式如:2-(3-2),當一下子多項式輸入在計算器中,這一類關于括號優先級問題就得被考慮,還需要將數字和符號分別壓入堆棧,判斷優先級,當我們使用python時,則可以通過Tkinter文本框(entry)來實現entry的用法有很多,可看Python XML解析來了解更多,這里就不一一贅述了
代碼如下:

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()

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库简单应用——开发一个简易计算器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。