またはおそらく怠惰な方法..
非常に一般的なプログラミングのケースである、ユーザー入力をすばやく取得するための GUI メソッドが組み込まれている Python モジュールを探しています。Windows 7で動作する必要があります
私の理想のケース
import magicGUImodule
listOfOptions = ["option 1", "option 2", "option 3"]
choosenOptions = magicGUImodule.getChecklist(listOfOptions,
selectMultiple=True, cancelButton=True)
ちょっと似raw_input
ていますが、GUIがあります。これは一般的なプログラミング タスクであるため、そこには何かがあるに違いありません。
アップデート
@alecxe私の問題の解決策としてあなたの答えのチェックを外したのは失礼ではありません。私が取り組んでいるどんなスクリプトでも理想的なケースを使用できるようにしたいのですが、あなたの答えは私を半分にしてくれます。
@alecxeのソリューションをモジュールに簡単に実装できると思いましたが、それほど単純ではありません(私にとっては)..
これまでの私のモジュールは次のとおりです。
# This serve as a module to get user input - the easy way!
# Some GUI selection
#from Tkinter import *
import Tkinter
master = Tkinter.Tk()
input = None
listbox = None
def chooseFromList(list, windowTitle="Choose from list", buttonText="Submit", selectMultiple=False, w=150, h=30):
global listbox
listbox = Tkinter.Listbox(master, selectmode=MULTIPLE if selectMultiple else SINGLE, width=w, height=h)
listbox.master.title(windowTitle)
for option in list:
listbox.insert(0, option)
listbox.pack()
#listbox.selection_set(1)
b = Tkinter.Button(master, command=callback(listbox), text=buttonText)
b.pack()
mainloop()
def callback(listbox):
global listbox
setInput(listbox.selection_get())
master.destroy()
def setInput(var):
global input
input = var
def getInput():
global input
return input
そして、ここに私のスクリプトがあります
import GetUserInput
listOfOptions = ["option 1", "option 2", "option 3"]
choice = GetUserInput.chooseFromList(listOfOptions)
print choice.getInput()
しかし、私はちょうどエラーが発生します
can't invoke "listbox" command: application has been destroyed
ケースを解決するさまざまなオプションを試しましたが(グローバル変数を使用するなど)、運がありませんでした。
更新 2
@blablatros は、まさに私が探していたソリューションを提供してくれました。