gui python user-controls user-interface

gui - tkinter python



Cuadro de mensaje en Python (4)

He oído cosas buenas sobre wx python, que también es multiplataforma.

¿Hay una biblioteca de UI para crear un cuadro de mensaje o un cuadro de entrada en Python?


Su mejor apuesta es el módulo tkMessageBox, que debería funcionar en todos los sistemas (ya que Python normalmente vendrá con Tkinter).

Si puede restringirse a un sistema operativo específico, es posible que haya mejores opciones disponibles.


Se pueden crear cuadros de mensajes simples y cuadros de entrada utilizando EasyGui, una pequeña biblioteca que usa Tkinter, con la que viene Python.

Puede obtener EasyGui aquí: http://easygui.sourceforge.net/


de Tkinter

import * import os class Dialog(Toplevel): def __init__(self, parent, title = None): Toplevel.__init__(self, parent) self.transient(parent) if title: self.title(title) self.parent = parent self.result = None body = Frame(self) self.initial_focus = self.body(body) body.pack(padx=5, pady=5) self.buttonbox() self.grab_set() if not self.initial_focus: self.initial_focus = self self.protocol("WM_DELETE_WINDOW", self.cancel) self.geometry("+%d+%d" % (parent.winfo_rootx()+50, parent.winfo_rooty()+50)) self.initial_focus.focus_set() self.wait_window(self) # # construction hooks def body(self, master): # create dialog body. return widget that should have # initial focus. this method should be overridden pass def buttonbox(self): # add standard button box. override if you don''t want the # standard buttons box = Frame(self) w = Button(box, text="OK", width=10, command=self.ok, default=ACTIVE) w.pack(side=LEFT, padx=5, pady=5) w = Button(box, text="Cancel", width=10, command=self.cancel) w.pack(side=LEFT, padx=5, pady=5) self.bind("<Return>", self.ok) self.bind("<Escape>", self.cancel) box.pack() # # standard button semantics def ok(self, event=None): if not self.validate(): self.initial_focus.focus_set() # put focus back return self.withdraw() self.update_idletasks() self.apply() self.cancel() def cancel(self, event=None): # put focus back to the parent window self.parent.focus_set() self.destroy() # # command hooks def validate(self): return 1 # override def apply(self): pass # override