質問編集履歴

3

2019/01/13 02:00

投稿

poo3
poo3

スコア10

test CHANGED
File without changes
test CHANGED
@@ -24,11 +24,31 @@
24
24
 
25
25
 
26
26
 
27
- 環境はWindows10の64bitでpython3
27
+
28
-
28
+
29
- Visual Studio 2017とっており
29
+ ■■機能を実装中に以下のエラーメッセージが発生しした
30
+
31
+
32
+
30
-
33
+ ### 発生している問題・エラーメッセージ
34
+
35
+
36
+
31
-
37
+ ```
38
+
39
+ エラーメッセージ
40
+
41
+ ```
42
+
43
+
44
+
45
+ ### 該当のソースコード
46
+
47
+
48
+
49
+ ```ここに言語名を入力
50
+
51
+ ソースコード
32
52
 
33
53
  ******************************
34
54
 
@@ -192,32 +212,8 @@
192
212
 
193
213
  pass
194
214
 
195
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
196
-
197
-
198
-
199
- ### 発生している問題・エラーメッセージ
200
-
201
-
202
-
203
215
  ```
204
216
 
205
- エラーメッセージ
206
-
207
- ```
208
-
209
-
210
-
211
- ### 該当のソースコード
212
-
213
-
214
-
215
- ```ここに言語名を入力
216
-
217
- ソースコード
218
-
219
- ```
220
-
221
217
 
222
218
 
223
219
  ### 試したこと

2

2019/01/13 02:00

投稿

poo3
poo3

スコア10

test CHANGED
File without changes
test CHANGED
File without changes

1

2019/01/13 01:53

投稿

poo3
poo3

スコア10

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ```**__~~**```__ここに言語を入力__
2
2
 
3
- ここに言語を入力
3
+ Python3
4
4
 
5
5
  ```**~~__**
6
6
 
@@ -8,11 +8,189 @@
8
8
 
9
9
  ```### 前提・実現したいこと
10
10
 
11
-
11
+ キー入力によるタイマースレッドの終了をさせたいです
12
12
 
13
13
  ここに質問の内容を詳しく書いてください。
14
14
 
15
+
16
+
17
+ python3を独学にて現在勉強しています。
18
+
19
+ クラスの勉強もかねて、タイマースレッドを使用し特定のキー(ESCキー)が押された場合に終了するプログラムを作成していたのですが、どこにどのように入れれば良いのか上手く動きません。(main.pyの中でtest.pyの実行中にESCキーが押されたら終わるような流れにしたいと思っています。)
20
+
21
+ getchを使用してキーの判断をするところまでは分かったのですが、行き詰ってしまいました。
22
+
23
+ ご教授お願い致します。
24
+
25
+
26
+
27
+ 環境はWindows10の64bitでpython3
28
+
15
- (例)PHP(CakePHP)で●●システムを作ってます。
29
+ Visual Studio 2017となっております。
30
+
31
+
32
+
33
+ ******************************
34
+
35
+ (test.py)
36
+
37
+
38
+
39
+ class Test():
40
+
41
+ def __init__(self):
42
+
43
+ self.no = 0
44
+
45
+
46
+
47
+ def main_proc(self):
48
+
49
+ print("hello")
50
+
51
+
52
+
53
+ if __name__ == "__main__":
54
+
55
+ pass
56
+
57
+ ****************************************************
58
+
59
+ (main.py)
60
+
61
+
62
+
63
+ import timer
64
+
65
+ import test
66
+
67
+
68
+
69
+ def start():
70
+
71
+ print("Start")
72
+
73
+ return test.Test()
74
+
75
+
76
+
77
+ if __name__ == "__main__":
78
+
79
+ tt = start()
80
+
81
+ T1 = timer.Timer(3, tt.main_proc)
82
+
83
+ T1.start()
84
+
85
+
86
+
87
+ ****************************************************
88
+
89
+ (timer.py)
90
+
91
+
92
+
93
+ import threading
94
+
95
+ import time
96
+
97
+
98
+
99
+ class Timer():
100
+
101
+ def __init__(self, time, onTimer, params = None, count = -1):
102
+
103
+ self.time = time
104
+
105
+ self.onTimer = onTimer
106
+
107
+ self.params = params
108
+
109
+ self.count = count
110
+
111
+ self.counter = 0
112
+
113
+ self.init()
114
+
115
+
116
+
117
+ def init(self):
118
+
119
+ self.state = "initializing"
120
+
121
+
122
+
123
+ def pause(self):
124
+
125
+ self.state = "paused"
126
+
127
+
128
+
129
+ def run(self):
130
+
131
+ if (self.state != "terminated"):
132
+
133
+ self.state = "running"
134
+
135
+ else:
136
+
137
+ del self.thread
138
+
139
+ self.init()
140
+
141
+ self.start()
142
+
143
+
144
+
145
+ def terminate(self):
146
+
147
+ self.state = "terminated"
148
+
149
+
150
+
151
+ def start(self):
152
+
153
+ if (self.state == "initializing"):
154
+
155
+ self.run()
156
+
157
+ self.thread = threading.Thread(target = self.do, args = ())
158
+
159
+ self.thread.start()
160
+
161
+
162
+
163
+ def do(self):
164
+
165
+ while (self.state == "running"):
166
+
167
+ time.sleep(self.time)
168
+
169
+ if (self.state == "running"):
170
+
171
+ if (self.params != None):
172
+
173
+ self.onTimer(self.params)
174
+
175
+ else:
176
+
177
+ self.onTimer()
178
+
179
+ self.counter += 1
180
+
181
+ if (self.count > 0 and self.counter >= self.count):
182
+
183
+ self.counter = 0
184
+
185
+ self.state = "exit"
186
+
187
+ self.terminate()
188
+
189
+
190
+
191
+ if __name__ == "__main__":
192
+
193
+ pass
16
194
 
17
195
  ■■な機能を実装中に以下のエラーメッセージが発生しました。
18
196