回答編集履歴
3
誤字訂正
answer
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
QThread は Pythonのスレッドと同じように継承でも使えるのですが、
|
17
17
|
継承による利用では、イベントループを呼び出す処理を上書きしてしまう為、
|
18
|
-
イベントループを
|
18
|
+
イベントループを必要とする処理、QTimer や、
|
19
19
|
一部スレッドに対するシグナル・スロットの利用に制限が掛かります。
|
20
20
|
|
21
21
|
----
|
2
誤字修正
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
QThread はスレッド毎に個別のイベントループを持ちます。
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
QThread の使い方は幾つかあるのですが、継承による方法ではなく
|
8
8
|
スレッドで処理したいことを行う worker を作成し、
|
9
9
|
moveToThread を使うアプローチを取ってください。
|
10
10
|
|
1
追記
answer
CHANGED
@@ -21,8 +21,12 @@
|
|
21
21
|
----
|
22
22
|
|
23
23
|
また、Pythonのスレッド / QThread に限らず、
|
24
|
-
|
24
|
+
描画更新を別スレッドで直接行うのは問題があるので、
|
25
25
|
|
26
26
|
Pythonのスレッドを使う場合は、イベント等の通知の仕組み、
|
27
27
|
QThread を使う場合はシグナル・スロットを用いて、
|
28
|
-
描画の更新処理はメインスレッド側で行う必要があります。
|
28
|
+
描画の更新処理はメインスレッド側で行う必要があります。
|
29
|
+
|
30
|
+
追記: タイマーでは描画更新処理を直接行うのではなく、
|
31
|
+
スレッドではデータのみ読み出して、シグナルを発生させるようにします。
|
32
|
+
メインスレッド側では、そのシグナルに描画更新処理のスロットを接続します。
|