回答編集履歴

1

サンプルコード追加

2019/08/02 12:03

投稿

amahara_waya
amahara_waya

スコア1029

test CHANGED
@@ -1,3 +1,149 @@
1
+ -追記-
2
+
3
+
4
+
5
+ サンプルコードです。レイアウトに関してはテキトーです。
6
+
7
+
8
+
9
+ ```python
10
+
11
+ import tkinter
12
+
13
+ import tkinter as tk
14
+
15
+ from tkinter import messagebox as mbox
16
+
17
+ import math
18
+
19
+
20
+
21
+ win = tk.Tk()
22
+
23
+
24
+
25
+ #タイトル
26
+
27
+ win.title("電卓")
28
+
29
+
30
+
31
+ #各ボタンが押された時に,テキストボックスに入力
32
+
33
+ def func(v):
34
+
35
+ text.insert(tkinter.END,v)
36
+
37
+
38
+
39
+ #Cボタンを押された時の反応(1文字削除)
40
+
41
+ def delfunc():
42
+
43
+ pos_end_prev = len(text.get())-1#終わりの1つ前
44
+
45
+ text.delete(pos_end_prev,tkinter.END)
46
+
47
+
48
+
49
+ #=ボタンを押された時の反応(計算結果を表示)
50
+
51
+ def equr_click():
52
+
53
+ answer = eval(text.get())#計算結果取得
54
+
55
+
56
+
57
+ #テキストボックス内を更新
58
+
59
+ text.delete(0, tkinter.END)
60
+
61
+ text.insert(tkinter.END,str(answer))
62
+
63
+
64
+
65
+ #ACボタンを押された時の反応(全文字削除)
66
+
67
+ def del_click():
68
+
69
+ text.delete(0, tkinter.END)
70
+
71
+
72
+
73
+ #ラベル作成
74
+
75
+ label = tk.Label(win,text ='電卓',font=("",20))
76
+
77
+ label.place(x=50,y=50)
78
+
79
+
80
+
81
+ #テキストボックス作成
82
+
83
+ text = tk.Entry(win,width=10)
84
+
85
+ text.place(x=50,y=0)
86
+
87
+
88
+
89
+ #0~9ボタン作成
90
+
91
+ btn_0 = tk.Button(win, text="0", command=lambda: func("0")).grid(column=0, row=0)
92
+
93
+ btn_1 = tk.Button(win, text="1", command=lambda: func("1")).grid(column=0, row=1)
94
+
95
+ btn_2 = tk.Button(win, text="2", command=lambda: func("2")).grid(column=1, row=1)
96
+
97
+ btn_3 = tk.Button(win, text="3", command=lambda: func("3")).grid(column=2, row=1)
98
+
99
+ btn_4 = tk.Button(win, text="4", command=lambda: func("4")).grid(column=0, row=2)
100
+
101
+ btn_5 = tk.Button(win, text="5", command=lambda: func("5")).grid(column=1, row=2)
102
+
103
+ btn_6 = tk.Button(win, text="6", command=lambda: func("6")).grid(column=2, row=2)
104
+
105
+ btn_7 = tk.Button(win, text="7", command=lambda: func("7")).grid(column=0, row=3)
106
+
107
+ btn_8 = tk.Button(win, text="8", command=lambda: func("8")).grid(column=1, row=3)
108
+
109
+ btn_9 = tk.Button(win, text="9", command=lambda: func("9")).grid(column=2, row=3)
110
+
111
+
112
+
113
+ #記号ボタン作成
114
+
115
+ btn_p = tk.Button(win, text="+", command=lambda: func("+")).grid(column=0, row=5) #+
116
+
117
+ btn_m = tk.Button(win, text="-", command=lambda: func("-")).grid(column=1, row=5) #-
118
+
119
+ btn_k = tk.Button(win, text="×", command=lambda: func("*")).grid(column=2, row=5) #*
120
+
121
+ btn_w = tk.Button(win, text="÷", command=lambda: func("/")).grid(column=3, row=5) #/
122
+
123
+ btn_i = tk.Button(win, text="=", command=equr_click).grid(column=5, row=5) #=
124
+
125
+ btn_s = tk.Button(win, text=".", command=lambda: func(".")) #小数点
126
+
127
+
128
+
129
+ btn_AC = tk.Button(win, text='AC', command=del_click).grid(column=4, row=4) #AC
130
+
131
+ btn_C = tk.Button(win, text="C", command=lambda: delfunc()).grid(column=3, row=4) #C
132
+
133
+
134
+
135
+ #実行
136
+
137
+ win.mainloop()
138
+
139
+ ```
140
+
141
+
142
+
143
+ -追記終わり-
144
+
145
+
146
+
1
147
  勉強中とのことなので、コードではなく概念としてのヒントを。
2
148
 
3
149
  コードが欲しかったらコメントしてください。