2016-08-30 14 views
-1

どうやら、tkinterはwhileループを既に使用しているので、whileループを使用することはできません。したがって、whileループでコードを動作させるための助けが必要です。私はそれが "mainloop()"と関係があると信じていますが、私はそれをどのように使うべきかはわかりません。whileループ内でtkinterダイアログウィンドウが機能しません。

コード以下(ループなしで動作します):

while (1): 
    choice = input("Choose 1 to open dialog, 2 to end the program.\n") 
    if choice == "1": 
     from tkinter import * 
     root = Tk() 
     root.withdraw() 
     fileName = filedialog.askopenfilename(filetypes = ([("Text file","*.txt")]),title='Please select a text file') 
     file = open(fileName) 
     sentence = file.read() 
     file.close() 

    elif choice == "2": 
     break 
+1

なぜ 'input'を使用するGUIを書いていますか?あなたのプログラムはGUIかダイアログをポップアップするコマンドラインツールですか? –

+0

ダイアログをポップアップする必要があるコマンドラインツール –

+0

ループ内でダイアログを開く際の問題を説明するために、圧縮コードと圧縮解除コードのすべてを必要としません。 –

答えて

0

あなたはroot.witdraw()でウィンドウwitdrawnたらrootに関連付けられているすべてのコードが実行されませんので、あなたは、ユーザー間、開いているウィンドウを維持する必要がありますブライアンオークリーはあなたが

、コマンドラインまたはグラフィカルインタフェースのいずれかを使用することができると言いましたように、開口ダイアログ

は、あなたが「開くために、いくつかの対話を選択してください」と言って窓にlabelスティック可能性がある、または

これはテストしましたが、これはうまくいきます。

関連する問題