Tkinter 計算器第一代

2021-08-02 12:03:39 字數 1396 閱讀 3382

from tkinter import *

master = tk()

master.title('第一代計算器')

frame = frame(master)

frame.pack(padx=10, pady=10)

v1 = stringvar()

v2 = stringvar()

v3 = stringvar()

def test(content):

return content.isdigit()

testcmd = master.register(test)

###昨天除錯執行出現了'nonetype『這個錯誤,經過檢視文件以及網上搜尋發現原來,.grid以及.pack返回結果都是none所以下面e1以及e2這些在賦值不能帶上.grid否則在commond中函式呼叫會報錯

e1 = entry(frame, textvariable=v1, validate="key",\

validatecommand=(testcmd, '%p'))

e1.grid(row=0, column=0)

label(frame,text='+').grid(row=0,column=1)

e2 = entry(frame, textvariable=v2, validate="key",\

validatecommand=(testcmd, '%p'))

e2.grid(row=0, column=2)

label(frame,text='=').grid(row=0,column=3)

e3 = entry(frame, textvariable=v3, state='readonly')

e3.grid(row=0,column=4)

def calc():

result = int(v1.get()) + int(v2.get())

v3.set(str(result))

def clear():

###在e2如果賦值帶上.grid()會報錯以為返回值為none

v1.set("")

v2.set("")

v3.set("")

button(frame,text="計算結果",command=calc).grid(row=1,column=2,pady=5)

button(frame,text="c",command=clear).grid(row=1,column=3,pady=5)

mainloop()

通過這次編寫知道了如何處理錯誤,出現nonetype就應該考慮這個是不是返回值為none

在以後出現的錯誤中不會再慌不知道如何修改錯誤,應該仔細檢視各個函式方法的返回值不是直接上來就用,要不錯誤會滿天飛

SAP增強總結 第一代增強

1 sap增強從用途來說分 a 資料元素增強 b 選單增強 c 螢幕增強 d 功能增強 2 sap增強從實現方式來說分 a 第一代增強 增強嵌入標準程式中 b第二代增強 smod cmod c 第三代增強 badi d 增強 bte 實現某個用途採用何種實現方式,四代增強可能都不是萬能的,具體採用哪...

第一代電子計算機

又稱 電子管計算機 以電子管為主要電路元件的電子計算機。第一台電子管計算機於1946年在美國製成,取名埃尼阿克 eniac 1946 1957年生產的電子計算機都是第一代電子計算機。附 世界上第一台電子計算機是個龐然大物 重30噸,占地150平方公尺,肚子裡裝有18800只電子管。它是1954年,在...

第一代的桌面虛擬化技術

接上篇 上篇文章介紹了桌面虛擬化技術的前身,即0.5代桌面虛擬化,接下來我們看看第一代的桌面虛擬化技術。第一代桌面虛擬化技術 第一代桌面虛擬化技術,真正意義上將遠端桌面的遠端訪問能力與虛擬作業系統結合了起來,使得桌面虛擬化的企業應用也成為可能。首先,伺服器虛擬化技術的成熟,以及伺服器計算能力的增強,...