效果圖如下:
#建立橫條型框架
def frame(root, side):
w = frame(root) #在螢幕上建立一塊矩形區域
w.pack(side = side, expand = yes, fill = both)
#expand = 1時,使能fill屬性;=0時,關閉fill屬性
#fill = both,當gui窗體大小發生變化時,widget在x、y兩方向跟隨gui窗體變化
return w
#建立按鈕
def button(root, side, text, command = none):
w = button(root, text = text, command = command)
w.pack(side = side, expand = yes, fill = both)
return w
#繼承了frame類,初始化程式介面的布局
class calculator(frame):
def __init__(self):
frame.__init__(self)
self.pack(expand = yes, fill = both)
self.master.title('計算器')
display = strin**ar()
#如果設定乙個textvariable屬性為乙個strin**ar(intvar, doublevar)物件。
#當這個物件的值被重新設定的時候,元件上的顯示文字就會自動變成新的值。
#新增輸入框
entry(self, relief = sunken,
textvariable = display).pack(side = top, expand = yes,
fill = both)
#新增橫條型框架以及裡面的按鈕
for key in('123', '456', '789', '-0.'):
keyf = frame(self, top)
for char in key:
button(keyf, left, char, lambda w = display, c = char:w.set(w.get() + c))
#新增操作符按鈕
opsf = frame(self, top)
for char in '+-*/=':
if char == '=':
btn = button(opsf, left, char)
btn.bind('', lambda e, s = self, w = display:s.calc(w), '+')
else:
btn = button(opsf, left, char, lambda w = display, s = '%s' %char:w.set(w.get() + s))
#新增清除按鈕
clearf = frame(self, bottom)
button(clearf, left, '清除', lambda w = display:w.set(''))
#呼叫eval函式計算表示式的值
def calc(self, display):
try:
display.set(eval(display.get()))
except:
display.set("error")
#程式的入口
if __name__ == '__main__':
print('ok')
calculator().mainloop() #一旦檢測到事件,就重新整理元件
Python實現簡易計算器(巨簡易)
while true p input 是否繼續使用計算器?y n if p y a float input 輸入數字1 b float input 輸入數字2 c str input 輸入運算法則 if c z a b print s 與 s 的和為 s a,b,z elif c z a b pri...
實現簡易計算器
python 剛學python 老師帶著寫了乙個計算器。話不多說直接上 from tkinter import 匯入模組 top tk 設定視窗物件 top.title 計算器 設定視窗標題 v strin ar 接受使用者輸入的字元 v.set 0 設定字元預設值 isopera false 是否...
計算器簡易實現
testdlg.cpp 實現檔案 include stdafx.h include include test.h include testdlg.h include afxdialogex.h ifdef debug define new debug new endif define tag add...