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

質問編集履歴

3

タイトルを変更

2021/03/09 09:29

投稿

geekmama
geekmama

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- タイマーの残時間をマイナス表示にする方法を教えてください
1
+ タイマーの残時間をマイナス表示にする方法を教えてください
body CHANGED
File without changes

2

不要なコードを削除

2021/03/09 09:29

投稿

geekmama
geekmama

スコア1

title CHANGED
File without changes
body CHANGED
@@ -11,76 +11,12 @@
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```Python
14
- import tkinter as tk
15
- import time
16
14
 
17
- class Application(tk.Frame):
18
- def __init__(self, master=None):
19
- super().__init__(master)
20
- self.master.title('カウントダウンタイマー')
21
- self.master.geometry('520x250')
22
- self.target_time = None
23
- self.create_widgets()
24
-
25
- def create_widgets(self):
26
-
27
- f_input = tk.Frame(self)
28
- f_input.pack()
29
-
30
- f_entry = tk.Frame(f_input, pady=20)
31
- f_entry.pack(side=tk.TOP)
32
- self.entry = tk.Entry(f_entry, width=5)
33
- self.entry.insert(tk.END,"")
34
- self.entry.pack(fill='x', padx=5, side='left')
35
- tk.Label(f_entry,text="秒 (手入力も可能です)").pack(fill='x', padx=5, side='left')
36
-
37
- f_btn1 = tk.Frame(f_input, pady=20)
38
- f_btn1.pack(side=tk.LEFT)
39
- self.b_30s = tk.Button(f_btn1, text="30秒", command=lambda:[self.set_30s(), self.start()])
40
- self.b_1m = tk.Button(f_btn1, text="1分", command=lambda:[self.set_1m(), self.start()])
41
- self.b_90s = tk.Button(f_btn1, text="90秒", command=lambda:[self.set_90s(), self.start()])
42
- self.b_2m = tk.Button(f_btn1, text="2分", command=lambda:[self.set_2m(), self.start()])
43
- self.b_3m = tk.Button(f_btn1, text="3分", command=lambda:[self.set_3m(), self.start()])
44
- self.b_4m = tk.Button(f_btn1, text="4分", command=lambda:[self.set_4m(), self.start()])
45
- self.b_5m = tk.Button(f_btn1, text="5分", command=lambda:[self.set_5m(), self.start()])
46
- self.b_6m = tk.Button(f_btn1, text="6分", command=lambda:[self.set_6m(), self.start()])
47
- self.b_10m = tk.Button(f_btn1, text="10分", command=lambda:[self.set_10m(), self.start()])
48
- self.b_20m = tk.Button(f_btn1, text="20分", command=lambda:[self.set_20m(), self.start()])
49
- self.b_30m = tk.Button(f_btn1, text="30分", command=lambda:[self.set_30m(), self.start()])
50
- self.b_1h = tk.Button(f_btn1, text="1時間", command=lambda:[self.set_1h(), self.start()])
51
- self.b_30s.pack(side=tk.LEFT,padx=5)
52
- self.b_1m.pack(side=tk.LEFT,padx=5)
53
- self.b_90s.pack(side=tk.LEFT,padx=5)
54
- self.b_2m.pack(side=tk.LEFT,padx=5)
55
- self.b_3m.pack(side=tk.LEFT,padx=5)
56
- self.b_4m.pack(side=tk.LEFT,padx=5)
57
- self.b_5m.pack(side=tk.LEFT,padx=5)
58
- self.b_6m.pack(side=tk.LEFT,padx=5)
59
- self.b_10m.pack(side=tk.LEFT,padx=5)
60
- self.b_20m.pack(side=tk.LEFT,padx=5)
61
- self.b_30m.pack(side=tk.LEFT,padx=5)
62
- self.b_1h.pack(side=tk.LEFT,padx=5)
63
-
64
- self.svar = tk.StringVar()
65
- self.time_init()
66
- self.display = tk.Label(self, textvariable=self.svar, relief=tk.SUNKEN, font=("Meiryo",20),bg="white")
67
- self.display.pack(fill=tk.X, expand=1)
68
-
69
- f_btn2 = tk.Frame(self, pady=20)
70
- f_btn2.pack()
71
- self.b_start = tk.Button(f_btn2, text="スタート", command=self.start)
72
- self.b_stop = tk.Button(f_btn2, text="一時停止", command=self.stop, state=tk.DISABLED)
73
- self.b_reset = tk.Button(f_btn2, text="リセット", command=self.reset, state=tk.DISABLED)
74
- self.b_start.pack(side=tk.LEFT, padx=10, ipadx=20, ipady=10)
75
- self.b_stop.pack(side=tk.LEFT, padx=10, ipadx=20, ipady=10)
76
- self.b_reset.pack(side=tk.LEFT, padx=10, ipadx=20, ipady=10)
77
-
78
-
79
15
  def time_init(self):
80
16
  self.svar.set("時間ボタンをクリックしてください")
81
17
 
82
18
  def time_err(self,s):
83
- self.svar.set(f'{s}は不正な数値です。')
19
+ self.svar.set(f"{s}は不正な数値です")
84
20
 
85
21
  def time_set(self):
86
22
  self.h = self.target_time // 3600
@@ -91,130 +27,6 @@
91
27
  def deltatime(self):
92
28
  return (time.time() - self.pretime)
93
29
 
94
- def set_30s(self):
95
- self.entry.delete(0,tk.END)
96
- self.entry.insert(tk.END,"30")
97
-
98
- def set_1m(self):
99
- self.entry.delete(0,tk.END)
100
- self.entry.insert(tk.END,"60")
101
-
102
- def set_90s(self):
103
- self.entry.delete(0,tk.END)
104
- self.entry.insert(tk.END,"90")
105
-
106
- def set_2m(self):
107
- self.entry.delete(0,tk.END)
108
- self.entry.insert(tk.END,"120")
109
-
110
- def set_3m(self):
111
- self.entry.delete(0,tk.END)
112
- self.entry.insert(tk.END,"180")
113
-
114
- def set_4m(self):
115
- self.entry.delete(0,tk.END)
116
- self.entry.insert(tk.END,"240")
117
-
118
- def set_5m(self):
119
- self.entry.delete(0,tk.END)
120
- self.entry.insert(tk.END,"300")
121
-
122
- def set_6m(self):
123
- self.entry.delete(0,tk.END)
124
- self.entry.insert(tk.END,"360")
125
-
126
- def set_10m(self):
127
- self.entry.delete(0,tk.END)
128
- self.entry.insert(tk.END,"600")
129
-
130
- def set_20m(self):
131
- self.entry.delete(0,tk.END)
132
- self.entry.insert(tk.END,"1200")
133
-
134
- def set_30m(self):
135
- self.entry.delete(0,tk.END)
136
- self.entry.insert(tk.END,"1800")
137
-
138
- def set_1h(self):
139
- self.entry.delete(0,tk.END)
140
- self.entry.insert(tk.END,"3600")
141
-
142
- def start(self):
143
- try:
144
- if not self.target_time:
145
- self.target_time = int(self.entry.get())
146
- except:
147
- self.time_err(self.entry.get())
148
- return
149
- self.started = True
150
- self.pretime = time.time()
151
- self.time_set()
152
- self.entry.config(state=tk.DISABLED)
153
- self.b_start.config(state=tk.DISABLED)
154
- self.b_stop.config(state=tk.NORMAL)
155
- self.b_reset.config(state=tk.NORMAL)
156
- self.b_30s.config(state=tk.DISABLED)
157
- self.b_1m.config(state=tk.DISABLED)
158
- self.b_90s.config(state=tk.DISABLED)
159
- self.b_2m.config(state=tk.DISABLED)
160
- self.b_3m.config(state=tk.DISABLED)
161
- self.b_4m.config(state=tk.DISABLED)
162
- self.b_5m.config(state=tk.DISABLED)
163
- self.b_6m.config(state=tk.DISABLED)
164
- self.b_10m.config(state=tk.DISABLED)
165
- self.b_20m.config(state=tk.DISABLED)
166
- self.b_30m.config(state=tk.DISABLED)
167
- self.b_1h.config(state=tk.DISABLED)
168
- self.exec_timer()
169
-
170
- def stop(self):
171
- self.started = False
172
- self.b_start.config(state=tk.NORMAL)
173
- self.b_stop.config(state=tk.DISABLED)
174
- self.b_reset.config(state=tk.NORMAL)
175
-
176
- def reset(self):
177
- self.started = False
178
- self.target_time = None
179
- self.time_init()
180
- self.display.config(bg="white")
181
- self.b_stop.config(state=tk.DISABLED)
182
- self.b_reset.config(state=tk.DISABLED)
183
- self.entry.configure(state=tk.NORMAL)
184
- self.b_30s.config(state=tk.NORMAL)
185
- self.b_1m.config(state=tk.NORMAL)
186
- self.b_90s.config(state=tk.NORMAL)
187
- self.b_2m.config(state=tk.NORMAL)
188
- self.b_3m.config(state=tk.NORMAL)
189
- self.b_4m.config(state=tk.NORMAL)
190
- self.b_5m.config(state=tk.NORMAL)
191
- self.b_6m.config(state=tk.NORMAL)
192
- self.b_10m.config(state=tk.NORMAL)
193
- self.b_20m.config(state=tk.NORMAL)
194
- self.b_30m.config(state=tk.NORMAL)
195
- self.b_1h.config(state=tk.NORMAL)
196
- self.b_start.config(state=tk.NORMAL)
197
-
198
-
199
- def exec_timer(self):
200
- if self.started:
201
- self.target_time = self.target_time - self.deltatime()
202
- self.time_set()
203
-
204
- if self.target_time <= 11:
205
- self.display.config(bg="plum")
206
-
207
- #if self.target_time == 0:
208
- #self.target_time = self.target_time + 7200
209
- #self.time_set()
210
-
211
- self.pretime = time.time()
212
- self.after(50, self.exec_timer)
213
-
214
- if __name__ == '__main__':
215
- app = Application()
216
- app.pack()
217
- app.mainloop()
218
30
  ```
219
31
 
220
32
  ### 試したこと
@@ -225,6 +37,4 @@
225
37
  ### 補足情報(FW/ツールのバージョンなど)
226
38
 
227
39
  VS Code
228
- Python3.8.5
40
+ Python 3.8.5
229
-
230
- 元は他人様からコピーさせていただいたものをカスタマイズしたコードであるため、全容を把握しきれておりません。

1

タイトルと実行環境を修正しました

2021/03/07 09:54

投稿

geekmama
geekmama

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- タイマーのマイナス時間を表示する方法につい
1
+ タイマーの残時間をマイナス表示する方法を教えください
body CHANGED
@@ -224,4 +224,7 @@
224
224
 
225
225
  ### 補足情報(FW/ツールのバージョンなど)
226
226
 
227
+ VS Code
228
+ Python3.8.5
229
+
227
230
  元は他人様からコピーさせていただいたものをカスタマイズしたコードであるため、全容を把握しきれておりません。