回答編集履歴
4
文章の修正
test
CHANGED
@@ -54,16 +54,14 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
その上で、問題点:
|
57
|
+
その上で、解決策と問題点:
|
58
|
-
|
59
|
-
|
60
58
|
|
61
59
|
|
62
60
|
|
63
61
|
- スレッド間のデータの受け渡しには signal/slot を使います。
|
64
62
|
|
63
|
+
- 但し、QThread を継承した利用方法では、スレッド間のシグナル&スロットの実行に制限があります。
|
64
|
+
|
65
65
|
- QThread 間でsignal/slot を処理するイベントループを動かすためには、
|
66
66
|
|
67
67
|
QThread を継承するのではなく、**moveToThread** を使った QThread の利用方法を調べてみてください。
|
68
|
-
|
69
|
-
QThread を継承した利用方法では、スレッド間のシグナル&スロットの実行に制限があります。
|
3
文章修正
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
スレッドを跨いで UI に入力された値等を参照するのは、
|
41
|
+
スレッドを跨いで UI に入力された変化する値等を参照するのは、
|
42
42
|
|
43
43
|
マルチスレッドにおいては安全な操作では有りません。
|
44
44
|
|
@@ -58,10 +58,6 @@
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
QThread を継承した利用方法では、
|
62
|
-
|
63
|
-
スレッド間のシグナル&スロットの実行に制限があります。
|
64
|
-
|
65
61
|
|
66
62
|
|
67
63
|
- スレッド間のデータの受け渡しには signal/slot を使います。
|
@@ -69,3 +65,5 @@
|
|
69
65
|
- QThread 間でsignal/slot を処理するイベントループを動かすためには、
|
70
66
|
|
71
67
|
QThread を継承するのではなく、**moveToThread** を使った QThread の利用方法を調べてみてください。
|
68
|
+
|
69
|
+
QThread を継承した利用方法では、スレッド間のシグナル&スロットの実行に制限があります。
|
2
コード例追記
test
CHANGED
@@ -4,13 +4,43 @@
|
|
4
4
|
|
5
5
|
変数のスコープの問題だけなら、
|
6
6
|
|
7
|
-
別スレッドで実行される関数に引数で渡すことはできますが、
|
7
|
+
別スレッドで実行される関数に引数で渡すことはできますが、(コード例追記)
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
```python
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
def click_execute(self):
|
16
|
+
|
17
|
+
self.process_code_text = Process_code_text_class(self) # (1) AK003()のインスタンスを渡す
|
18
|
+
|
19
|
+
self.process_code_text.start()
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
#コード実行用サブクラス
|
24
|
+
|
25
|
+
class Process_code_text_class(QThread):
|
26
|
+
|
27
|
+
def __init__(self,parent=None):
|
28
|
+
|
29
|
+
super(Process_code_text_class, self).__init__(parent)
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
self.ak003 = parent # (2)
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
```
|
8
38
|
|
9
39
|
|
10
40
|
|
11
41
|
スレッドを跨いで UI に入力された値等を参照するのは、
|
12
42
|
|
13
|
-
安全な操作では有りません。
|
43
|
+
マルチスレッドにおいては安全な操作では有りません。
|
14
44
|
|
15
45
|
|
16
46
|
|
1
文章の修正
test
CHANGED
@@ -39,13 +39,3 @@
|
|
39
39
|
- QThread 間でsignal/slot を処理するイベントループを動かすためには、
|
40
40
|
|
41
41
|
QThread を継承するのではなく、**moveToThread** を使った QThread の利用方法を調べてみてください。
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
----
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
文章よりもコードで説明したほうがわかりやすいと思うので、
|
50
|
-
|
51
|
-
後でコードで説明します。
|