2011-07-11 5 views
1

出力をファイルに書き込むボタンがあります。そのファイル名のファイルがすでに存在するかどうかを確認します。ユーザーに上書きするかどうかを尋ねるはずですか?しかし、それは動作していません。ユーザーがいいえと答えた場合でも、プログラムはファイルを上書きします。Python TkMessageBox質問が機能しません!

これは、メッセージボックスをポップアップ表示するためのコードです:

if os.path.exists(self.filename.get()): 
     tkMessageBox.showinfo('INFO', 'File already exists, want to override?.') 

答えて

5

あなたがはい/いいえ]または[OK /ボタンをキャンセルしていないダイアログを使用する必要がある、とあなたがの戻り値をキャプチャする必要がありますユーザーが何をクリックしたかを知るダイアログ。これから、ファイルに書き込むかどうかを決めることができます。例えば

import Tkinter as tk 
import tkMessageBox 

class SampleApp(tk.Tk): 
    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 
     self.button = tk.Button(self, text="Push me", command=self.OnButton) 
     self.button.pack() 

    def OnButton(self): 
     result = tkMessageBox.askokcancel(title="File already exists", 
             message="File already exists. Overwrite?") 
     if result is True: 
      print "User clicked Ok" 
     else: 
      print "User clicked Cancel" 

if __name__ == "__main__": 
    app = SampleApp() 
    app.mainloop() 

effbot.orgは、それが働いていないstandard dialogs

+0

ありがとう、私はそれを働かせた。私が必要としたのは、この行でした:result = tkmessage box ...そしてresultがtrueの場合。感謝します。 –

0
if os.path.exists(self.filename.get()) and tkMessageBox.askyesno(title='INFO', message='File already exists, want to override?.'): 
    # Overwrite your file here.. 
+0

のちょっといい過去記事があります。私はそれを実行しようとするたびに、これはポップアップです! Fileが存在し、上書きしたいと言っています。また、ファイルが存在しない場合、私はどうしますか?どのようにファイルに書き込むのですか? –

関連する問題