0

現在、Tkinterを使用してユーザーにファイルの入力を求めています。

Tk().withdraw() # keep the root window from appearing
file_path = askopenfilename() # show dialog box and return file path

# check if extension is valid

ユーザーが間違ったファイルタイプを選択した場合は、新しいウィンドウで再度プロンプトを表示します。

代わりに、選択したファイルが有効でない限り、同じtkinterウィンドウを開いたままにする方法はありますか?

だからこれの代わりに:

# 1) prompt user to open file
# 2) close file browser window
# 3) check if extension is valid
# 4) if not, print error and re-prompt user with new browser window

私はこれをしたい:

# 1) prompt user to open file
# 2) check if extension is valid while keeping window open
# 3) if not, print error, re-prompting with same window

どんな助けでも大歓迎です。

4

2 に答える 2

1

ユーザーに特定のファイルタイプを開かせたい場合は、filetypes引数を使用します。説明と拡張子として指定するファイルタイプ定義のリストを取得します。

filepath = askopenfilename(filetypes = [
    ('Text Files', '.txt'),
    ('Python Scripts', '.py'),
    ('INI Files', '.ini')
])
于 2012-11-23T05:18:38.830 に答える
0

ユーザーに選択させたいファイル タイプのみを表示するようにファイル ブラウザ ウィンドウを設定することもできますが、タイプ ドロップダウン ボックスを選択することで簡単に回避できます。ただし、ファイル選択時に (ユーザーが [OK] をクリックしてファイルを選択し、ファイル ブラウザー ウィンドウを閉じる)、ファイル拡張子が目的のタイプの 1 つであるかどうかを確認し、単純でない場合はファイル パス変数をクリアしてファイルを呼び出すことができます。ブラウザを開く機能を再び。そうすれば、正しいファイル タイプを選択するまで、ファイルの選択にとらわれます。ただし、これにより、元の場所に戻った理由がわからないという問題が発生する可能性があるため、ファイルブラウザーウィンドウを再度開く前にポップアップウィンドウなどを追加して、ユーザーフレンドリーにすることができます。

于 2012-11-23T04:55:17.930 に答える