ゴール
ユーザーからエントリを取得して返す単純な機能を持つ他のすべてのプログラムにインポートできる基本的なファイルを作成しようとしています。
コード
そのために、次のコードがあります。
class takeInput(object):
def __init__(self,requestMessage,parent):
self.string = ''
self.frame = Frame(parent)
self.frame.pack()
self.acceptInput(requestMessage)
def acceptInput(self,requestMessage):
r = self.frame
k = Label(r,text=requestMessage)
k.pack(side='left')
self.e = Entry(r,text='Name')
self.e.pack(side='left')
self.e.focus_set()
b = Button(r,text='okay',command=self.gettext)
b.pack(side='right')
def gettext(self):
self.string = self.e.get()
self.frame.destroy()
print self.string
def getString(self):
return self.string
def getText(requestMessage,parent):
global a
a = takeInput(requestMessage,parent)
return a.getString()
また、これをテストするためにスクリプト レベルのコードを追加しました。
root = Tk()
getText('enter your name',root)
var = a.getString()
print var
root.mainloop()
そして、私を本当に困惑させているのは、次のことです。
var
入力した値がありません 空の文字列があります''
a.string
変数には入力した値があり、これをシェルから確認しました。
またa.getString()
、から返された文字列をシェルに割り当てようとすると、var
うまくいきました。
私はTkinterプログラミングに慣れていないため、その仕組みを完全には理解していませんmainloop()
。ですから、これが問題だったのかもしれません。しかし、よくわかりません。
仕様
OS:リナックスミント14
Python IDLE 2.7
この問題で私を助けてください。