2017-09-09 20 views
1

どのように使用しますマルチ処理root.mainloop?私はpython 3.6を使用しています。私は後にコードの行をする必要があります。にはオブジェクトが必要です。
I 第2のオブジェクトを作成したくない場合は、私の質問に対するその他の回答のいくつかをお勧めします。ここ は少しのコードスニペット(敷石JSONオブジェクトである)である:python 3.xマルチ処理tkinterメインループ

from multiprocessing import Process 
def check(): 
    try: sett['setup'] 
    except KeyError: 
     sett['troubleshoot_file']=None 
     check() 
    else: 
     if sett['setup'] is True: return 
     elif type(sett['setup']) is not bool: raise TypeError('sett[\'setup\'] is not a type of boolian (\'bool\')') 
    root.=Tk() 
    root['bg']='blue' 
    mainloop=Process(target=root.mainloop) 
    mainloop.start() 
    mainloop.join() 

助けてください! はチェック()

しかし、私はこのトレースバックを得る:

Traceback (most recent call last): 
    File "(directory)/main.py", line 41, in <module> 
    check() 
    File "(directory)/main.py", line 39, in check 
    mainloop.start() 
    File "C:\Program Files (x86)\Python36-32\lib\multiprocessing\process.py", line 105, in start 
    self._popen = self._Popen(self) 
    File "C:\Program Files (x86)\Python36-32\lib\multiprocessing\context.py", line 223, in _Popen 
    return _default_context.get_context().Process._Popen(process_obj) 
    File "C:\Program Files (x86)\Python36-32\lib\multiprocessing\context.py", line 322, in _Popen 
    return Popen(process_obj) 
    File "C:\Program Files (x86)\Python36-32\lib\multiprocessing\popen_spawn_win32.py", line 65, in __init__ 
    reduction.dump(process_obj, to_child) 
    File "C:\Program Files (x86)\Python36-32\lib\multiprocessing\reduction.py", line 60, in dump 
    ForkingPickler(file, protocol).dump(obj) 
TypeError: can't pickle _tkinter.tkapp objects 

答えて

2

あなたが複数のプロセスやスレッド間で任意のTkinterのオブジェクトを使用することはできません。 GUIと他のプロセス間でデータを共有する必要がある場合は、キューを設定し、GUIからキューをポーリングする必要があります。

この理由は、tkinterは、Pythonスレッドまたはプロセスについて何も知らないtclインタープリタのラッパーです。

あなたはでこれを行う方法のリンクを見つける:どのようにキューを作成する方法を教えてください docs.python.org/3.6/library/queue.html

+0

を。 – Anynomous

+1

@Anynomous:https://docs.python.org/3.6/library/queue.html –

+0

私は試したが、うまくいかなかった。 – Anynomous

関連する問題