91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于python tkinter的簡單計算器(v1.0)

發布時間:2020-09-15 12:33:13 來源:網絡 閱讀:1576 作者:大陌 欄目:軟件技術
import tkinter

#定義計算器類
class Calc:
	#初始化魔術方法
	def __init__(self):
		#初始化共用屬性
		
		#定義一個用于存放被計算字符串的列表
		self.operationList = []

		#定義運算標記 確定是否輸入了運算符號
		self.isOper = False

		#初始化界面
		self.initWindows()

	#更改按鍵盤顏色方法
	def changeBg(self,evt):
		evt.widget['bg'] = 'cyan'

	#恢復按鍵盤顏色方法
	def backBg(self,evt):
		evt.widget['bg'] = 'lightgray'

	#數字按鈕操作方法
	def buttonAction(self,number):
		#判斷用戶是否按下了運算按鈕
		if self.isOper == True:
			#在界面上顯示運算符之后的數
			self.num.set(number)
			#運算標記復位
			self.isOper = False
		else:
			#沒有銨下運算按鈕
			#判斷原始界面數字是否為0
			existNumber = self.num.get()
			if existNumber == '0':
				#如果界面中的初始數據為0 則獲取用戶輸入數據并顯示
				self.num.set(number)
			else:
				#如果界面中的初始數據不為0 則對字符進行累加
				self.num.set(self.num.get()+number)

	#運算按鈕操作方法 
	def operation(self,opFlag):
		#運算標記置為真
		self.isOper = True
		#獲取界面中存在的數 并且寫入列表
		self.operationList.append(self.num.get())
		#當前運算符號不會在上一步中寫入 需要單獨寫入
		self.operationList.append(opFlag)
		
	#獲取運行結果操作方法 
	def getResult(self):
		#將當前界面中數字加入計算列表
		self.operationList.append(self.num.get())

		#開始計算 
		result = eval(''.join(self.operationList))
		self.num.set(result)

	#全部清空重新計算方法 
	def clearAll(self):
		#界面置0 計算列表置0
		self.num.set('0')
		self.operationList.clear()
		#運算標志復位
		self.isOper = False

	#實現退格鍵方法
	def backSpace(self):
		#獲取當前顯示數字長度
		strLength = len(self.num.get())
		#如果當前顯示有數字
		if strLength > 1:
			#刪除字串中最后一個字
			presentStr = self.num.get()
			presentStr = presentStr[:strLength - 1]
			self.num.set(presentStr)
		else:
			self.num.set('0')

	#正負號實現方法
	def pm(self):
		presentStr = self.num.get()
		#實現增加和去除負號
		if presentStr[0] == '-':
			self.num.set(presentStr[1:])
			#原始字串不得以-號和0開頭
		elif presentStr[0] not in ('-','0'):
			self.num.set('-'+presentStr)

	#界面布局方法
	def initWindows(self):
		#生成主窗口 定制窗口尺寸
		root = tkinter.Tk()
		root.minsize(400,500)
		root.title('微硬計算器')

		#生成用于保存數值的變量
		self.num = tkinter.StringVar()
		self.num.set(0)

		#運算結果輸出位置
		result = tkinter.Label(root,width=20,height=2,bg='white',bd=10,anchor='e',font=('宋體',50),textvariable=self.num)

		result.place(relx=0,rely=0,relwidth=1.0,relheight=0.4)

		###########################以下為按鍵部分############################
		buttonCE = tkinter.Button(root,text='CE',bg='lightgray',command = self.clearAll)
		buttonCE.place(relx=0,rely=0.4,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonCE.bind('<Enter>',self.changeBg)
		buttonCE.bind('<Leave>',self.backBg)

		buttonC = tkinter.Button(root,text='C',bg='lightgray',command = self.clearAll)
		buttonC.place(relx=0.25,rely=0.4,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonC.bind('<Enter>',self.changeBg)
		buttonC.bind('<Leave>',self.backBg)

		buttonDel = tkinter.Button(root,text='<-',bg='lightgray',command = self.backSpace)
		buttonDel.place(relx=0.5,rely=0.4,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonDel.bind('<Enter>',self.changeBg)
		buttonDel.bind('<Leave>',self.backBg)

		buttonDiv = tkinter.Button(root,text='÷',bg='lightgray',command = lambda : self.operation('/'))
		buttonDiv.place(relx=0.75,rely=0.4,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonDiv.bind('<Enter>',self.changeBg)
		buttonDiv.bind('<Leave>',self.backBg)

		button1 = tkinter.Button(root,text='1',bg='lightgray',command = lambda : self.buttonAction('1'))
		button1.place(relx=0,rely=0.5,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button1.bind('<Enter>',self.changeBg)
		button1.bind('<Leave>',self.backBg)

		button2 = tkinter.Button(root,text='2',bg='lightgray',command = lambda : self.buttonAction('2'))
		button2.place(relx=0.25,rely=0.5,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button2.bind('<Enter>',self.changeBg)
		button2.bind('<Leave>',self.backBg)

		button3 = tkinter.Button(root,text='3',bg='lightgray',command = lambda : self.buttonAction('3'))
		button3.place(relx=0.5,rely=0.5,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button3.bind('<Enter>',self.changeBg)
		button3.bind('<Leave>',self.backBg)

		buttonX = tkinter.Button(root,text='x',bg='lightgray',command = lambda : self.operation('*'))
		buttonX.place(relx=0.75,rely=0.5,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonX.bind('<Enter>',self.changeBg)
		buttonX.bind('<Leave>',self.backBg)

		button4 = tkinter.Button(root,text='4',bg='lightgray',command = lambda : self.buttonAction('4'))
		button4.place(relx=0,rely=0.6,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button4.bind('<Enter>',self.changeBg)
		button4.bind('<Leave>',self.backBg)

		button5 = tkinter.Button(root,text='5',bg='lightgray',command = lambda : self.buttonAction('5'))
		button5.place(relx=0.25,rely=0.6,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button5.bind('<Enter>',self.changeBg)
		button5.bind('<Leave>',self.backBg)

		button6 = tkinter.Button(root,text='6',bg='lightgray',command = lambda : self.buttonAction('6'))
		button6.place(relx=0.5,rely=0.6,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button6.bind('<Enter>',self.changeBg)
		button6.bind('<Leave>',self.backBg)

		button_ = tkinter.Button(root,text='-',bg='lightgray',command = lambda : self.operation('-'))
		button_.place(relx=0.75,rely=0.6,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button_.bind('<Enter>',self.changeBg)
		button_.bind('<Leave>',self.backBg)

		button7 = tkinter.Button(root,text='7',bg='lightgray',command = lambda : self.buttonAction('7'))
		button7.place(relx=0,rely=0.7,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button7.bind('<Enter>',self.changeBg)
		button7.bind('<Leave>',self.backBg)

		button8 = tkinter.Button(root,text='8',bg='lightgray',command = lambda : self.buttonAction('8'))
		button8.place(relx=0.25,rely=0.7,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button8.bind('<Enter>',self.changeBg)
		button8.bind('<Leave>',self.backBg)

		button9 = tkinter.Button(root,text='9',bg='lightgray',command = lambda : self.buttonAction('9'))
		button9.place(relx=0.5,rely=0.7,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button9.bind('<Enter>',self.changeBg)
		button9.bind('<Leave>',self.backBg)

		buttonAdd = tkinter.Button(root,text='+',bg='lightgray',command = lambda : self.operation('+'))
		buttonAdd.place(relx=0.75,rely=0.7,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonAdd.bind('<Enter>',self.changeBg)
		buttonAdd.bind('<Leave>',self.backBg)

		buttonFlag = tkinter.Button(root,text='±',bg='lightgray',command = self.pm)
		buttonFlag.place(relx=0,rely=0.8,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonFlag.bind('<Enter>',self.changeBg)
		buttonFlag.bind('<Leave>',self.backBg)

		button0 = tkinter.Button(root,text='0',bg='lightgray',command = lambda : self.buttonAction('0'))
		button0.place(relx=0.25,rely=0.8,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		button0.bind('<Enter>',self.changeBg)
		button0.bind('<Leave>',self.backBg)

		buttonPoint = tkinter.Button(root,text='.',bg='lightgray',command = lambda : self.buttonAction('.'))
		buttonPoint.place(relx=0.5,rely=0.8,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonPoint.bind('<Enter>',self.changeBg)
		buttonPoint.bind('<Leave>',self.backBg)

		buttonEque = tkinter.Button(root,text='=',bg='lightgray',command = self.getResult)
		buttonEque.place(relx=0.75,rely=0.8,relwidth=0.25,relheight=0.1)
		#綁定按鈕 生成鼠標經過變色效果
		buttonEque.bind('<Enter>',self.changeBg)
		buttonEque.bind('<Leave>',self.backBg)
		#########################以上為按鍵部分############################
		#底部顯示信息
		bottomLabel = tkinter.Label(root,text = 'Power By Microhard Corpration\n@2017'
		,bg='cyan',width=30,height = 1,padx=0)
		bottomLabel.place(relx=0,rely=0.9,relwidth=1.0,relheight=0.1)

		#主窗口循環
		root.mainloop()


            
#實例化計算器對象
c = Calc()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙海市| 顺昌县| 钟山县| 同心县| 出国| 辛集市| 高碑店市| 右玉县| 灵寿县| 广元市| 增城市| 南康市| 开阳县| 甘南县| 宁强县| 怀远县| 平武县| 吴堡县| 萍乡市| 台山市| 金塔县| 稷山县| 青浦区| 旌德县| 甘肃省| 新晃| 铁力市| 神农架林区| 南郑县| 永德县| 志丹县| 宜黄县| 景德镇市| 濉溪县| 通州区| 葵青区| 安多县| 肥西县| 莎车县| 安义县| 聂拉木县|