質問編集履歴

2

追記しました

2020/05/14 13:29

投稿

yuki0369
yuki0369

スコア14

test CHANGED
File without changes
test CHANGED
@@ -153,3 +153,97 @@
153
153
  Python3.6
154
154
 
155
155
  RichPresenceの表示にはpypresenceを使用してます。
156
+
157
+
158
+
159
+ ###追記
160
+
161
+ threadingからmultiprocessingに変えたところ、起動しボタンを押してrichpresenceを有効化するところまではできたのですが、そこで新しいウインドウが開きそれがフリーズしてしまいます。
162
+
163
+ 最初に開いたウインドウはフリーズしていません。
164
+
165
+ https://stackoverflow.com/questions/46674498/tkinter-is-opening-multiple-gui-windows-upon-file-selection-with-multiprocessing
166
+
167
+ 調べてみたところ上記のような情報が見つかり試してみたのですが、特に変わりはありませんでした。
168
+
169
+ 以下変更後のソースコードです。
170
+
171
+ ```Python
172
+
173
+ import psutil
174
+
175
+ from pypresence import Presence
176
+
177
+ import time
178
+
179
+ import tkinter as tk
180
+
181
+ from tkinter import messagebox as mbox
182
+
183
+ import multiprocessing
184
+
185
+
186
+
187
+
188
+
189
+ client_id = 'クライアントID'
190
+
191
+
192
+
193
+ n = "\n"
194
+
195
+
196
+
197
+ starttime = time.time()
198
+
199
+
200
+
201
+ def rp():
202
+
203
+ RPC = Presence(client_id, pipe=0)
204
+
205
+ RPC.connect()
206
+
207
+ mbox.showinfo("info", "ステータス表示を有効化しました")
208
+
209
+ while True:
210
+
211
+ cpu_per = round(psutil.cpu_percent(), 1)
212
+
213
+ mem_per = round(psutil.virtual_memory().percent, 1)
214
+
215
+ RPC.update(start=int(starttime), details="メモリ使用率: " + str(mem_per) + "%", state="CPU使用率:"+str(cpu_per))
216
+
217
+ time.sleep(1)
218
+
219
+
220
+
221
+
222
+
223
+ def callback():
224
+
225
+ mp = multiprocessing.Process(target=rp)
226
+
227
+ mp.start()
228
+
229
+
230
+
231
+
232
+
233
+ if __name__ == "__main__":
234
+
235
+ root = tk.Tk()
236
+
237
+ root.geometry("500x300")
238
+
239
+
240
+
241
+ button1 = tk.Button(text="有効化", font=("", 30), width=15, height=5, command=callback)
242
+
243
+ button1.pack()
244
+
245
+
246
+
247
+ root.mainloop()
248
+
249
+ ```

1

少しコードを修正しました。

2020/05/14 13:29

投稿

yuki0369
yuki0369

スコア14

test CHANGED
File without changes
test CHANGED
@@ -124,6 +124,8 @@
124
124
 
125
125
 
126
126
 
127
+
128
+
127
129
  button1 = tk.Button(text="有効化", font=("", 30), width=15, height=5, command=callback)
128
130
 
129
131
  button1.pack()