2009-06-27 5 views
8

私は、 "YES"と "NO"ボタンを持つかなり単純なメッセージボックスをtkinterに構築しようとしていました。 "YES"ボタンを内部で押すと、ファイルにYESを書き込む必要があります。同様に、「いいえ」が押されると、ファイルにNOを書き込む必要があります。これどうやってするの?tkinterでメッセージボックスを作成するには?

+4

は私に良い宿題の質問のように聞こえる...だからあなたはこれまで何を持っていますか? – balpha

答えて

18

Python 2.7のモジュールtkMessageBoxまたはPython 3の対応バージョンtkinter.messageboxを使用できます。

askquestion()はまさにあなたが望む機能です。それは文字列"yes"または"no"を返します。

+1

tkinter.messageboxは私のubuntu 12.04 pythonで動作しません – Ajoy

+1

@Ajoyあなたが持っているPythonのバージョンを調べるには、2.xの場合は 'tkMessageBox'を実行する必要があります。 – MatrixFrog

+0

ありがとう@MatrixFrog。 tkMessageBoxは機能します。 – Ajoy

7

Python 2.7のメッセージボックスを使って質問する方法は次のとおりです。具体的にはモジュールtkMessageBoxが必要です。

from Tkinter import * 
import tkMessageBox 


root = Tk().withdraw() # hiding the main window 
var = tkMessageBox.askyesno("Title", "Your question goes here?") 

filename = "log.txt" 

f = open(filename, "w") 
f.write(str(var)) 
print str(var) + " has been written to the file " + filename 
f.close() 
8

あなたが変数にaskquestion関数の戻り値を割り当てることができ、その後、あなたは、単にファイルに変数を書く:

from tkinter import messagebox 

variable = messagebox.askquestion('title','question') 

with open('myfile.extension', 'w') as file: # option 'a' to append 
    file.write(variable + '\n')