回答編集履歴

1

修正

2021/01/11 02:37

投稿

退会済みユーザー
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  from PyQt5 import QtWidgets,QtCore
16
16
 
17
- from PyQt5.QtCore import QThread, QTimer, QEventLoop # 追加
17
+ from PyQt5.QtCore import QObject, QEventLoop, QThread, QTimer, pyqtSignal # 追加
18
18
 
19
19
  from PyQt5.QtWidgets import QMainWindow
20
20
 
@@ -30,21 +30,45 @@
30
30
 
31
31
 
32
32
 
33
+
34
+
35
+ # バックグラウンドで処理を行うためのクラス
36
+
37
+ class Worker(QObject):
38
+
39
+ start = pyqtSignal()
40
+
41
+ done = pyqtSignal()
42
+
43
+
44
+
45
+ def run(self):
46
+
47
+ self.start.emit()
48
+
49
+ self.done.emit()
50
+
51
+
52
+
53
+
54
+
33
55
  class AK003(QMainWindow, Ui_MainWindow):
34
56
 
35
57
  def __init__(self,parent=None):
36
58
 
37
59
  super(AK003, self).__init__(parent)
38
60
 
39
- # 下記行追加
61
+ # 下記5行追加
40
62
 
41
63
  self.thread = QThread()
42
64
 
43
- self.thread.started.connect(self.minimize)
65
+ self.worker = Worker()
44
66
 
45
- self.thread.finished.connect(self.thread.quit)
67
+ self.worker.start.connect(self.minimize)
46
68
 
47
- self.moveToThread(self.thread)
69
+ self.worker.done.connect(self.thread.quit)
70
+
71
+ self.thread.started.connect(self.worker.run)
48
72
 
49
73
 
50
74
 
@@ -80,7 +104,9 @@
80
104
 
81
105
  # デスクトップ表示スレッドの開始
82
106
 
107
+ self.worker.moveToThread(self.thread)
108
+
83
- self.thread.start()
109
+ self.thread.start()
84
110
 
85
111
  else:
86
112