teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

追記しました

2020/05/14 13:29

投稿

sdfg
sdfg

スコア14

title CHANGED
File without changes
body CHANGED
@@ -75,4 +75,51 @@
75
75
  ### 補足情報(FW/ツールのバージョンなど)
76
76
  Windows10 64bit
77
77
  Python3.6
78
- RichPresenceの表示にはpypresenceを使用してます。
78
+ RichPresenceの表示にはpypresenceを使用してます。
79
+
80
+ ###追記
81
+ threadingからmultiprocessingに変えたところ、起動しボタンを押してrichpresenceを有効化するところまではできたのですが、そこで新しいウインドウが開きそれがフリーズしてしまいます。
82
+ 最初に開いたウインドウはフリーズしていません。
83
+ https://stackoverflow.com/questions/46674498/tkinter-is-opening-multiple-gui-windows-upon-file-selection-with-multiprocessing
84
+ 調べてみたところ上記のような情報が見つかり試してみたのですが、特に変わりはありませんでした。
85
+ 以下変更後のソースコードです。
86
+ ```Python
87
+ import psutil
88
+ from pypresence import Presence
89
+ import time
90
+ import tkinter as tk
91
+ from tkinter import messagebox as mbox
92
+ import multiprocessing
93
+
94
+
95
+ client_id = 'クライアントID'
96
+
97
+ n = "\n"
98
+
99
+ starttime = time.time()
100
+
101
+ def rp():
102
+ RPC = Presence(client_id, pipe=0)
103
+ RPC.connect()
104
+ mbox.showinfo("info", "ステータス表示を有効化しました")
105
+ while True:
106
+ cpu_per = round(psutil.cpu_percent(), 1)
107
+ mem_per = round(psutil.virtual_memory().percent, 1)
108
+ RPC.update(start=int(starttime), details="メモリ使用率: " + str(mem_per) + "%", state="CPU使用率:"+str(cpu_per))
109
+ time.sleep(1)
110
+
111
+
112
+ def callback():
113
+ mp = multiprocessing.Process(target=rp)
114
+ mp.start()
115
+
116
+
117
+ if __name__ == "__main__":
118
+ root = tk.Tk()
119
+ root.geometry("500x300")
120
+
121
+ button1 = tk.Button(text="有効化", font=("", 30), width=15, height=5, command=callback)
122
+ button1.pack()
123
+
124
+ root.mainloop()
125
+ ```

1

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

2020/05/14 13:29

投稿

sdfg
sdfg

スコア14

title CHANGED
File without changes
body CHANGED
@@ -61,6 +61,7 @@
61
61
  th.start()
62
62
 
63
63
 
64
+
64
65
  button1 = tk.Button(text="有効化", font=("", 30), width=15, height=5, command=callback)
65
66
  button1.pack()
66
67