2008-11-02 9 views

Répondre

11

Votre meilleur pari est le module tkMessageBox, qui devrait fonctionner sur tous les systèmes (car Python sera généralement livré avec Tkinter).

Si vous pouvez vous limiter à un système d'exploitation spécifique, de meilleurs choix peuvent être disponibles.

2

J'ai entendu de bonnes choses à propos de wx python, qui est également multi-plateforme.

3

Des boîtes de message simples et des boîtes de saisie peuvent être créées en utilisant EasyGui, une petite bibliothèque utilisant Tkinter, fournie par Python.

Vous pouvez obtenir EasyGUI ici: http://easygui.sourceforge.net/

1

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 
Questions connexes