2017-03-05 10 views
0

2つのファイルがあります.1つはtkinterコードを含み、もう1つは関数を含みます。私はtkinterウィンドウにボタンとEntryフィールドを持っています。ボタンをクリックするときに関数を実行しようとしていますが、Entryフィールドのテキストが機能する必要があります。 Tkinterのファイルから何かをインポートしようとしたとき、私はエラーを取得する:Tkinter - tkinterファイルにインポートされた別のファイルのエントリ値を使用

tkinter_file.py:

import File 
window = Tk() 
def input(): 
    s = entry1.get() 
    return s 

entry1 = Entry(window) 
button1 = Button(window, text='GO', command=File.function) 

File.py:

from tkinter import * 
import tkinter_file 

def function(): 
    req_url = 'http://someurl.com/{}'.format(tkinter_file.input) 
    requests get url etc. etc. 

私はできるだけ早くエラーになっているように見えます私はFile.pytkinter_fileをインポートする、あるいは単に機能input

File "/etc/etc/tkinter_file.py", line 75, in <module> 
button1 = Button(window, text='GO', command=File.function) 
AttributeError: module 'File' has no attribute 'function' 

私はreq_urlの値がsでないことが問題であると考えています.2つのファイルをお互いにインポートするだけでなく、どうやってこれを克服しますか?それは、循環依存関係を作成するため

は「これはできる、次の2つのモジュールを持っている場合は、

答えて

2

ありがとうa.pyb.pyは、あなたがaモジュールbをインポートしてbモジュールaをインポートすることはできませんと言いますはっきりと解決される!

解決策は、その関数が正常に動作するために必要なもの、つまりentry1の内容をパラメータとしてFile.functionに渡すことです。

button1 = Button(window, text='GO', command=lambda: File.function(entry1.get())) 
+0

私はそれについても考えていませんでした。ありがとうございました! – StevenH

関連する問題