estoy creando algunos cuadros de diálogo utilizando TkInter y la necesidad de ser capaz de abrir una sub-ventana secundaria (modal o no) al hacer clic en un botón en la matriz. El niño permitiría entonces crear un registro de datos y estos datos (ya sea el registro o si la operación se canceló) deben ser comunicados nuevamente a la ventana principal. Hasta ahora tengo:Cómo crear ventana secundaria y comunicarse con los padres en TkInter
import sel_company_dlg
from Tkinter import Tk
def main():
root = Tk()
myCmp = sel_company_dlg.SelCompanyDlg(root)
root.mainloop()
if __name__ == '__main__':
main()
Esto invoca el diálogo de nivel superior que permite al usuario seleccionar una empresa. El diálogo de selección de la empresa es el siguiente:
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)
Al hacer clic en el botón ...Nueva, se muestra un cuadro de diálogo Crear Company, que permite al usuario para completar datos de la empresa y haga clic en crear o cancelar. Aquí está la parte de apertura de eso:
class CompanyDlg(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
// etc.
Estoy luchando con la mejor manera de invocar el diálogo de niño en onNew()
- lo que tengo obras, pero no estoy convencido de que es el mejor enfoque y también, puedo' t ver cómo comunicar los detalles ay desde el cuadro de diálogo secundario.
He intentado buscar tutoriales en línea/referencias, pero lo que he encontrado es demasiado simplista o se centra en cosas como tkMessageBox.showinfo()
que no es lo que quiero.
Muchas gracias por esto, que realmente ayudó. –
# bryan-oakley Buen resumen de técnicas. ¿Recomiendan más referencias de detalles sobre tales técnicas (Internet o recursos de libros) sobre el intercambio de datos entre padres e hijos? : - la generación de eventos vuelve al elemento principal - devolviendo los datos al elemento primario - ... – AJN