2009-06-27 15 views
8

Ho cercato di creare una finestra di messaggio abbastanza semplice in tkinter con i pulsanti "SÌ" e "NO". Quando spingo il pulsante "SÌ" internamente, deve andare a scrivere SÌ su un file. Allo stesso modo, quando viene premuto "NO", NO deve essere scritto su un file. Come posso fare questo?Come creare una finestra di messaggio con tkinter?

+4

suona come una buona domanda compiti a casa per me ... Quindi , cosa hai finora? – balpha

risposta

18

È possibile utilizzare il modulo tkMessageBox per Python 2.7 o la versione corrispondente per Python 3 denominata tkinter.messagebox.

Sembra che askquestion() sia esattamente la funzione che si desidera. Restituirà anche la stringa "yes" o "no" per te.

+1

Il tkinter.messagebox non funziona nel mio Ubuntu 12.04 python – Ajoy

+1

@Ajoy Controlla quale versione di Python hai, potresti dover fare 'tkMessageBox' se è 2.x. – MatrixFrog

+0

Grazie a @MatrixFrog. tkMessageBox funziona. – Ajoy

7

Ecco come è possibile porre una domanda utilizzando una finestra di messaggio in Python 2.7. È necessario specificamente il modulo 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

È possibile assegnare il valore di ritorno della funzione askquestion a una variabile, e quindi è sufficiente scrivere la variabile in un file:

from tkinter import messagebox 

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

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