2017-04-13 4 views
0

私はファイルにする必要があります:1つはカーブと呼ばれ、もう1つはメインです。メインでは、ボタンのウィンドウを開こうとしていますが、ボタンを押すたびに開かれます。それはカメを使って何かを曲線で描き始める。カメはTkinterと衝突する

メイン::これは簡略化されたスクリプトである

import tkinter 

    master = tkinter.Toplevel() 

    def callback(): 
     print("click!") 
     master.withdraw() 
     b.quit() 
     import curve 

    b = tkinter.Button(master, text="OK", command=callback) 
    b.pack() 
    tkinter.mainloop() 

カーブ:

import turtle 

    turtle.bgpic("somefile.gif") 
    #do some other stuff 
しかし

私はこれを実行したときに、私はこのエラーを取得:

Exception in Tkinter callback 
Traceback (most recent call last): 
    File "C:\Python34\lib\tkinter\__init__.py", line 1482, in __call__ 
    return self.func(*args) 
    File "C:/Users/MYNAME/PycharmProjects/hilbert/main.py", line 7, in callback 
    import curve 
    File "C:\Users\MYNAME\PycharmProjects\hilbert\curve.py", line 3, in <module> 
    turtle.bgpic("images/processed.gif") 
    File "<string>", line 1, in bgpic 
    File "C:\Python34\lib\turtle.py", line 1474, in bgpic 
    self._setbgpic(self._bgpic, self._bgpics[picname]) 
    File "C:\Python34\lib\turtle.py", line 737, in _setbgpic 
    self.cv.itemconfig(item, image=image) 
    File "<string>", line 1, in itemconfig 
    File "C:\Python34\lib\tkinter\__init__.py", line 2380, in itemconfigure 
    return self._configure(('itemconfigure', tagOrId), cnf, kw) 
    File "C:\Python34\lib\tkinter\__init__.py", line 1261, in _configure 
    self.tk.call(_flatten((self._w, cmd)) + self._options(cnf)) 
_tkinter.TclError: image "pyimage2" doesn't exist 
+0

は私がstllか見当がつかないこれは動作しますが、私はbgpic()を使わないで自分のコードを動かすことができました。また、 'root = tkinter.Tk()'のようなものでなければならないことを知っています。 'root.withdraw()' 'master = tkinter.Toplevel(root)' 'master.protocol(" WM_DELETE_WINDOW "破壊する) 'しかし、それはどちらもうまくいかない –

答えて

0

カメを用いて実装されているためにtkinter、あなたは2つを混ぜるときに綱渡りをしている。 bgpic()呼び出しを含むコードのこのリワークあなたが記述何をしているようだ、:

main.py

import tkinter 
import turtle 

turtle.Screen() 
root = tkinter.Toplevel() 

def callback(): 
    print("click!") 
    root.withdraw() 
    b.quit() 
    import curve 

b = tkinter.Button(root, text="OK", command=callback) 
b.pack() 

tkinter.mainloop() 

curve.py

import turtle 

turtle.bgpic('somefile.gif') 

# do some other stuff 

turtle.circle(100) 

turtle.mainloop()