明日学習キャンプ第0週課題#作成電卓
15458 ワード
import tkinter as tk
from xml.etree.ElementTree import Comment #tkinter 임포트하는데 tk로 이름바꾸기
disValue = 0 #결과값 변수만들기
operator = {'+':1, '-':2, '/':3, '*':4, 'C':5, '=':6}
stoValue = 0
opPre = 0
def number_click(value):
#print('숫자',value)
global disValue
disValue = (disValue*10) + value
str_value.set(disValue)
def clear():
global disValue, stoValue, opPre
stoValue = 0
opPre = 0
disValue = 0
str_value.set(disValue)
def operator_click(value):
#print('명령',value)
global disValue, operator, stoValue, opPre
op = operator[value]
if op == 5: # C
clear()
elif disValue == 0:
opPre = 0
elif opPre == 0:
opPre = op
stoValue = disValue
disValue = 0
str_value.set(str(disValue))
elif op ==6: #'=
if opPre == 1:
disValue = stoValue + disValue
if opPre == 2:
disValue = stoValue - disValue
if opPre == 3:
disValue = stoValue / disValue
if opPre == 4:
disValue = stoValue * disValue
str_value.set(str(disValue))
disValue = 0
stoValue = 0
opPre = 0
else:
clear()
def button_click(value):
#print(value)
try:
value = int(value)
number_click(value)
except:
operator_click(value)
win = tk.Tk() #Tk 함수만들기
win.title('계산기') #타이틀넣기
str_value = tk.StringVar()
str_value.set(str(disValue)) # 문자로 변환하여 set
dis = tk.Entry(win, textvariable=str_value, justify='right', bg ='white', fg='red') #에디트창에 값 자동으로 업데이트
dis.grid(column=0, row=0, columnspan=4, ipadx=80, ipady=30)
calItem = [['1','2','3','4'],
['5','6','7','8'],
['9','0','+','-'],
['/','*','C','=']]
for i,items in enumerate(calItem):
for k,item in enumerate(items):
try:
color = int(item)
color = 'black'
except:
color = 'pink'
bt = tk.Button(win,
text=item,
width=10,
height=5,
bg = color,
fg = 'white',
command = lambda cmd=item: button_click(cmd)
)
bt.grid(column=k, row=(i+1))
win.mainloop() #생성한 윈도우 내부에서 수행되는 마우스 클릭 같은 이벤트들이 발생하게끔 유지해주는 함수
今までウェブサイトの制作しかしていませんでしたが、このようにGUIで電卓を作るのは初めてです.そのため、慣れない機能を使っているので、とても見慣れないと感じます.
実際、電卓を作るというより、受講後についていく感じで、誰も手伝ってくれないと迷ってしまいます.
でもこのように一歩一歩練習すれば、今日は昨日よりもっといいと思います.
Reference
この問題について(明日学習キャンプ第0週課題#作成電卓), 我々は、より多くの情報をここで見つけました https://velog.io/@ansaudwn123/내일배움캠프-0주차-과제-계산기만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol