teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

サンプルコード追加

2019/08/02 12:03

投稿

amahara_waya
amahara_waya

スコア1029

answer CHANGED
@@ -1,3 +1,76 @@
1
+ -追記-
2
+
3
+ サンプルコードです。レイアウトに関してはテキトーです。
4
+
5
+ ```python
6
+ import tkinter
7
+ import tkinter as tk
8
+ from tkinter import messagebox as mbox
9
+ import math
10
+
11
+ win = tk.Tk()
12
+
13
+ #タイトル
14
+ win.title("電卓")
15
+
16
+ #各ボタンが押された時に,テキストボックスに入力
17
+ def func(v):
18
+ text.insert(tkinter.END,v)
19
+
20
+ #Cボタンを押された時の反応(1文字削除)
21
+ def delfunc():
22
+ pos_end_prev = len(text.get())-1#終わりの1つ前
23
+ text.delete(pos_end_prev,tkinter.END)
24
+
25
+ #=ボタンを押された時の反応(計算結果を表示)
26
+ def equr_click():
27
+ answer = eval(text.get())#計算結果取得
28
+
29
+ #テキストボックス内を更新
30
+ text.delete(0, tkinter.END)
31
+ text.insert(tkinter.END,str(answer))
32
+
33
+ #ACボタンを押された時の反応(全文字削除)
34
+ def del_click():
35
+ text.delete(0, tkinter.END)
36
+
37
+ #ラベル作成
38
+ label = tk.Label(win,text ='電卓',font=("",20))
39
+ label.place(x=50,y=50)
40
+
41
+ #テキストボックス作成
42
+ text = tk.Entry(win,width=10)
43
+ text.place(x=50,y=0)
44
+
45
+ #0~9ボタン作成
46
+ btn_0 = tk.Button(win, text="0", command=lambda: func("0")).grid(column=0, row=0)
47
+ btn_1 = tk.Button(win, text="1", command=lambda: func("1")).grid(column=0, row=1)
48
+ btn_2 = tk.Button(win, text="2", command=lambda: func("2")).grid(column=1, row=1)
49
+ btn_3 = tk.Button(win, text="3", command=lambda: func("3")).grid(column=2, row=1)
50
+ btn_4 = tk.Button(win, text="4", command=lambda: func("4")).grid(column=0, row=2)
51
+ btn_5 = tk.Button(win, text="5", command=lambda: func("5")).grid(column=1, row=2)
52
+ btn_6 = tk.Button(win, text="6", command=lambda: func("6")).grid(column=2, row=2)
53
+ btn_7 = tk.Button(win, text="7", command=lambda: func("7")).grid(column=0, row=3)
54
+ btn_8 = tk.Button(win, text="8", command=lambda: func("8")).grid(column=1, row=3)
55
+ btn_9 = tk.Button(win, text="9", command=lambda: func("9")).grid(column=2, row=3)
56
+
57
+ #記号ボタン作成
58
+ btn_p = tk.Button(win, text="+", command=lambda: func("+")).grid(column=0, row=5) #+
59
+ btn_m = tk.Button(win, text="-", command=lambda: func("-")).grid(column=1, row=5) #-
60
+ btn_k = tk.Button(win, text="×", command=lambda: func("*")).grid(column=2, row=5) #*
61
+ btn_w = tk.Button(win, text="÷", command=lambda: func("/")).grid(column=3, row=5) #/
62
+ btn_i = tk.Button(win, text="=", command=equr_click).grid(column=5, row=5) #=
63
+ btn_s = tk.Button(win, text=".", command=lambda: func(".")) #小数点
64
+
65
+ btn_AC = tk.Button(win, text='AC', command=del_click).grid(column=4, row=4) #AC
66
+ btn_C = tk.Button(win, text="C", command=lambda: delfunc()).grid(column=3, row=4) #C
67
+
68
+ #実行
69
+ win.mainloop()
70
+ ```
71
+
72
+ -追記終わり-
73
+
1
74
  勉強中とのことなので、コードではなく概念としてのヒントを。
2
75
  コードが欲しかったらコメントしてください。
3
76