国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python GUI計算器的實現

瀏覽:5日期:2022-07-08 18:36:15

01 實現

我們幾乎每個人都用過計算器,大家對于計算器應該都是比較熟悉的,計算器整體也是比較簡單的,主要包括:顯示器、鍵盤、運算的邏輯處理等,計算器的圖形界面我們使用 tkinter 庫實現,下面看一下具體實現過程。

首先,我們畫一個主窗口,代碼實現如下:

# 創建主窗口tk = tkinter.Tk()# 設置窗口大小和位置tk.geometry(’300x210+500+200’)# 不允許改變窗口大小tk.resizable(False, False)# 設置窗口標題tk.title(’計算器’)

看一下效果:

python GUI計算器的實現

我們接著畫顯示器,代碼實現如下:

# 自動刷新字符串變量,可用 set 和 get 方法進行傳值和取值contentVar = tkinter.StringVar(tk, ’’)# 創建單行文本框contentEntry = tkinter.Entry(tk, textvariable=contentVar)# 設置文本框為只讀contentEntry[’state’] = ’readonly’# 設置文本框坐標及寬高contentEntry.place(x=20, y=10, width=260, height=30)

看一下效果:

python GUI計算器的實現

再接著畫鍵盤,代碼實現如下:

# 按鈕顯示內容bvalue = [’C’, ’+’, ’-’, ’//’, ’2’, ’0’, ’1’, ’√’, ’3’, ’4’, ’5’, ’*’, ’6’, ’7’, ’8’, ’.’, ’9’, ’/’, ’**’, ’=’]index = 0# 將按鈕進行 5x4 放置for row in range(5): for col in range(4): d = bvalue[index] index += 1 btnDigit = tkinter.Button(tk, text=d, command=lambda x=d: onclick(x)) btnDigit.place(x=20 + col * 70, y=50 + row * 30, width=50, height=20)

看一下效果:

python GUI計算器的實現

界面畫完了,我們看一下處理運算邏輯的代碼,如下所示:

# 點擊事件def onclick(btn): # 運算符 operation = (’+’, ’-’, ’*’, ’/’, ’**’, ’//’) # 獲取文本框中的內容 content = contentVar.get() # 如果已有內容是以小數點開頭的,在前面加 0 if content.startswith(’.’): content = ’0’ + content # 字符串可以直接用+來增加字符 # 根據不同的按鈕作出不同的反應 if btn in ’0123456789’: # 按下 0-9 在 content 中追加 content += btn elif btn == ’.’: # 將 content 從 +-*/ 這些字符的地方分割開來 lastPart = re.split(r’+|-|*|/’, content)[-1] if ’.’ in lastPart: # 信息提示對話框 tkinter.messagebox.showerror(’錯誤’, ’重復出現的小數點’) return else: content += btn elif btn == ’C’: # 清除文本框 content = ’’ elif btn == ’=’: try: # 對輸入的表達式求值 content = str(eval(content)) except: tkinter.messagebox.showerror(’錯誤’, ’表達式有誤’) return elif btn in operation: if content.endswith(operation): tkinter.messagebox.showerror(’錯誤’, ’不允許存在連續運算符’) return content += btn elif btn == ’√’: # 從 . 處分割存入 n,n 是一個列表 n = content.split(’.’) # 如果列表中所有的都是數字,就是為了檢查表達式是不是正確的 if all(map(lambda x: x.isdigit(), n)): content = eval(content) ** 0.5 else: tkinter.messagebox.showerror(’錯誤’, ’表達式錯誤’) return # 將結果顯示到文本框中 contentVar.set(content)

整體實現完了之后,我們來演示一下,看一下效果:

python GUI計算器的實現

是不是有內味了。

02 打包

為了更加方便的使用,我們可以將 Python 代碼打包成 exe 文件,打包我們使用 pyinstaller,安裝用 pip install pyinstaller 命令即可。

打包時我們使用 pyinstaller --onefile --nowindowed counter.py 命令即可,此時打包生成的文件是使用的默認圖標,如果我們想指定自己的圖標可以添加參數 --icon='xxxxxx.ico',打包生成的文件在 dist 目錄。

如下圖所示:

python GUI計算器的實現

此時,我們直接運行 exe 文件就行了。

03 總結

本文我們使用 Python 實現了一個簡易的計算器,大家如果有興趣的話,可以嘗試添加更多的功能以及對鍵盤進行個性化修改。

以上就是python GUI計算器的實現的詳細內容,更多關于python 計算器的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 久久久www成人免费精品 | 国产欧美日韩在线观看 | 激情欧美一区二区三区 | 日韩一级片播放 | 亚洲欧美一区二区三区国产精品 | 久久久久久久久久免观看 | 久久国产影视免费精品 | 欧美中文字幕在线视频 | 亚洲 午夜在线一区 | 日产日韩亚洲欧美综合搜索 | 美女张开腿黄网站免费 | 黄色片亚洲 | 精品久久久久久中文字幕 | 日韩一区二区三 | 国产在线观看免费一级 | 亚洲精品午夜在线观看 | 国产一区亚洲二区三区毛片 | 亚洲线精品一区二区三区 | 亚洲一区二区三区不卡在线播放 | 66精品| 欧美成年| 国内外成人免费在线视频 | 80岁色老头69av | 国产主播精品福利19禁vip | 成人影院欧美大片免费看 | 成人精品 | 成人在线观看不卡 | 美女张开双腿让男人桶 | 91欧美精品 | 日韩一区二区在线免费观看 | 三级毛片三级毛片 | 毛片在线视频观看 | 久久久999国产精品 久久久99精品免费观看 | 怡红院爽妇网 | 成人男女18免费o | 日本一本久道 | 91大神在线精品视频一区 | 中国女警察一级毛片视频 | 国产一区视频在线播放 | 免费观看成为人视频 | 久久综合给会久久狠狠狠 |