Comment créer de fenêtre enfant et de communiquer avec les parents dans TkInter

Je suis la création de certains dialogues, en utilisant TkInter, et doivent être en mesure d'ouvrir une enfant de la sous-fenêtre modale ou non modale) en cliquant sur un bouton dans le parent. L'enfant serait alors de permettre un enregistrement de données d'être créé, et les données (soit l'enregistrement ou si l'opération a été annulée) doit être communiquée à la fenêtre parent. Pour l'instant j'ai:

import sel_company_dlg

from Tkinter import Tk

def main():
    root = Tk()
    myCmp = sel_company_dlg.SelCompanyDlg(root)
    root.mainloop()

if __name__ == '__main__':
    main()

Ce invoque le haut niveau de la boîte de dialogue qui permet à l'utilisateur de sélectionner une entreprise. L'entreprise de sélection de la boîte de dialogue ressemble à ceci:

class SelCompanyDlg(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent_ = parent
        self.frame_ = Frame( self.parent_ )
        // .. more init stuff ..
        self.btNew_ = Button( self.frame_, text="New ...", command=self.onNew )

    def onNew(self):
        root = Toplevel()
        myCmp = company_dlg.CompanyDlg(root)

En cliquant sur le Nouveau ... bouton, Créer une Société boîte de dialogue s'affiche qui permet à l'utilisateur de remplir les détails de la société et cliquez sur créer ou annuler. Voici l'ouverture de peu:

class CompanyDlg(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        // etc.

Je suis aux prises avec la meilleure façon d'invoquer la boîte de dialogue enfant dans onNew() - ce que j'ai fonctionne, mais je ne suis pas persuadé que c'est la meilleure approche, et aussi, je ne vois pas comment communiquer les détails à et de la boîte de dialogue enfant.

J'ai essayé de chercher des tutoriels en ligne /références, mais ce que j'ai trouvé est trop simpliste ou met l'accent sur des choses comme tkMessageBox.showinfo() qui iss pas ce que je veux.

InformationsquelleAutor Component 10 | 2012-05-23