Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Cuadro de dialogo tkMessageBox TKINTER
#1
Hola buenas, alguien me puede decir como es posible cambiar las opciones de un cuadro de dialogo en tkinter? Mas que cambiar las opciones lo que quiero es mostrarlas en otro idioma. Tengo un cuadro que muestra las opciones SI, NO y yo quiero que muestre YES, NO. Como puedo hacer esto?

Gracias, un saludo.
Responder
#2
Python tiene una librería llamada locale, que en sistemas Linux y similares funciona bien para cambiar las configuraciones de idioma al programa (luego lo puedes retornar a su origen).
Pero en Windows... ya es otra historia. Prueba con :


Código:
locale.setlocale(locale.LC_ALL, '<cadena del lenguaje>') ; p.ej. en-US

y el siguiente código para linux está tomado de Stackoverflow

Código:
import tkinter as tk
import tkinter.messagebox as mbox

root = tk.Tk()

def english():
   root.tk.eval('::msgcat::mclocale en')
   mbox.askyesno('Messagebox', 'Buttons in English')

def german():
   root.tk.eval('::msgcat::mclocale de')
   mbox.askyesno('Messagebox', 'Buttons in German')

tk.Button(root, text='English messagebox', command=english).pack()
tk.Button(root, text='German messagebox', command=german).pack()

root.mainloop()
Responder
#3
Hola Calvicius, gracias por la respuesta pero no me esta funcionando. Alguna idea de porque puede ser?
Responder
#4
Efectivamente en windows no funciona.
Si está muy interesado, puedes hacerte tu propio sistema de messagebox a base de ventanas emergentes asi:


Código:
from tkinter import *

def preguntaSiNo():
   win = Toplevel()
   win.title('Aviso')
   message = "Esto borrará la ventana emergente"
   Label(win, text=message).pack()
   Button(win, text='YES', command=win.destroy).pack()
   Button(win, text='NO hace nada').pack()
   
root = Tk()
Button(root, text='Muestra un mensaje simple', command=preguntaSiNo).pack()
root.mainloop()


te fabricas un módulo adhoc y listo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)