2009-06-27 23 views
8

He intentado crear un cuadro de mensaje bastante simple en tkinter que tiene los botones "SÍ" y "NO". Cuando pulso el botón "SÍ" internamente, debe ir y escribir SÍ a un archivo. De forma similar, cuando se pulsa "NO", NO se debe escribir en un archivo. ¿Cómo puedo hacer esto?¿Cómo crear un cuadro de mensaje con tkinter?

+4

suena como una buena pregunta tarea para mí ... Así ¿Qué tienes hasta ahora? – balpha

Respuesta

18

Puede usar el módulo tkMessageBox para Python 2.7 o la versión correspondiente para Python 3 llamada tkinter.messagebox.

Parece que askquestion() es exactamente la función que desea. Incluso devolverá la cadena "yes" o "no" por usted.

+1

El tkinter.messagebox no funciona en mi ubuntu 12.04 python – Ajoy

+1

@Ajoy Compruebe qué versión de Python tiene, es posible que deba hacer 'tkMessageBox' si es 2.x. – MatrixFrog

+0

Gracias @MatrixFrog. tkMessageBox funciona. – Ajoy

7

Así es como puedes hacer una pregunta usando un cuadro de mensaje en Python 2.7. Necesita específicamente el módulo 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

Puede asignar el valor de retorno de la función askquestion a una variable y, a continuación, se escribe la variable a un archivo:

from tkinter import messagebox 

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

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