回答編集履歴

6

コメントの修正

2020/06/04 18:06

投稿

teamikl
teamikl

スコア8742

test CHANGED
@@ -232,20 +232,26 @@
232
232
 
233
233
 
234
234
 
235
- ちなみに、ソース内の直前のコメントで書きましたが
235
+ [2020/06/05] 追記訂正:
236
-
237
- ここのthread.finished.connectで登録した関数は呼ばれません。
236
+
238
-
239
-
240
-
241
- ```
237
+
242
-
238
+
243
- # XXX: このループは強制終了以外に終了手段がないため
239
+ ~~# XXX: このループは強制終了以外に終了手段がないため~~
244
-
240
+
245
- # スレッド終了時のfinished シグナルは送られません
241
+ ~~# スレッド終了時のfinished シグナルは送られません~~
246
-
247
- ```
242
+
248
-
249
-
250
-
243
+
244
+
251
- シグナルが期待通りに動かない事の、実演のつもりで書いてました
245
+ 元々はシグナルが期待通りに動かない事の、実演のつもりで書いてましたが、
246
+
247
+
248
+
249
+ STOPボタンを押したときの terminate は後から追加したコードで、
250
+
251
+ ドキュメントがコード変更に追従してませんでした。
252
+
253
+
254
+
255
+ 現行のコードでは、terminate() 時にループは強制終了され、
256
+
257
+ finishedシグナルが発呼されます。

5

文章の修正

2020/06/04 18:06

投稿

teamikl
teamikl

スコア8742

test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- ここは推奨でない使い方の例として書いたコードなので、
105
+ autoThreadInheritの実装推奨でない使い方の例として書いたコードなので、
106
106
 
107
107
  一応動くからと言って、このまま参考にするのはお勧めできません。
108
108
 

4

autoThreadInheritのfinishedシグナルについて

2020/06/04 12:50

投稿

teamikl
teamikl

スコア8742

test CHANGED
@@ -223,3 +223,29 @@
223
223
  thread.finished.connect(tear_down)
224
224
 
225
225
  ```
226
+
227
+
228
+
229
+
230
+
231
+ 追記: autoThreadInheritの finished シグナルについて
232
+
233
+
234
+
235
+ ちなみに、ソース内の直前のコメントで書きましたが
236
+
237
+ ここのthread.finished.connectで登録した関数は呼ばれません。
238
+
239
+
240
+
241
+ ```
242
+
243
+ # XXX: このループは強制終了以外に終了手段がないため
244
+
245
+ # スレッド終了時のfinished シグナルは送られません
246
+
247
+ ```
248
+
249
+
250
+
251
+ シグナルが期待通りに動かない事の、実演のつもりで書いてました。

3

文章の修正

2020/06/04 12:48

投稿

teamikl
teamikl

スコア8742

test CHANGED
@@ -106,7 +106,11 @@
106
106
 
107
107
  一応動くからと言って、このまま参考にするのはお勧めできません。
108
108
 
109
- (上記の内、moveToThread は省いても動作に支障)
109
+ (上記の内、moveToThread は不要で、省いても動作に支障な)
110
+
111
+
112
+
113
+
110
114
 
111
115
 
112
116
 

2

追記2: getattr について

2020/06/04 12:36

投稿

teamikl
teamikl

スコア8742

test CHANGED
@@ -46,6 +46,22 @@
46
46
 
47
47
 
48
48
 
49
+ 追記2:
50
+
51
+
52
+
53
+ > func=getattr(self,label) は func=self.label と同じ意味であると勉強しました
54
+
55
+
56
+
57
+ 正確には self.label と同じなのは getattr(self, "label") です。
58
+
59
+ ここでの label は文字列の変数で、任意の文字列 ("autoTimer" 等) を取り、
60
+
61
+ MainWindowクラスの autoXXXX メソッドを動的に選んでます。
62
+
63
+
64
+
49
65
  ----
50
66
 
51
67
 

1

追記: 変数名被りについて

2020/06/04 12:33

投稿

teamikl
teamikl

スコア8742

test CHANGED
@@ -30,6 +30,22 @@
30
30
 
31
31
 
32
32
 
33
+
34
+
35
+ 追記:
36
+
37
+ def set_start_func(label) の引数は、被らないように変更した方が良かったです。
38
+
39
+ label -> name 2か所
40
+
41
+
42
+
43
+ - def set_start_func(name)
44
+
45
+ - func = getattr(self, name)
46
+
47
+
48
+
33
49
  ----
34
50
 
35
51