Python - no me agrega control entry a form secundario

 
Vista:
sin imagen de perfil

no me agrega control entry a form secundario

Publicado por eduardo (6 intervenciones) el 27/06/2023 14:06:33
BUen dia :

Tengo este codigo en el cual tengo un form ppal con dos botones :
Uno de clientes , otro de choferes.
en el de clientes , al clickear genero un form
secundario que me lo muestra ok.
el problema lo tengo en la funcion def Formclientes():
no me da error en la ejecucion , pero no me agrega un control entry
el cual lo intento hacer con esta linea:
entry1 = Entry( second, width = 35 )
Este es el codigo completo:

from tkinter import*
import tkinter
from tkinter import ttk
from tkinter import messagebox as MessageBox
top = tkinter.Tk()


###############

def GetTexto():
result=entry.get()
entry2.insert(0, result)
MessageBox.showinfo("texto insertado en text1 ")

def Formclientes():
global second
second = Toplevel()
second.geometry('600x600')
second.title("ABM CLIENTES")
entry1 = Entry( second, width = 35 )


top. config(width=800, height=600)
top.configure(bg = "#53CDB8") # color del formulario
top. title("SISTEMA DE ADMINISTRACION")

boton = ttk.Button(top,text = 'CLIENTES' , command=Formclientes)
boton.place(x=150, y=20)

boton1 = ttk.Button(top, text="CHOFERES", command=GetTexto )
boton1.place(x=150, y=60)

entry = ttk.Entry() # textbox

entry.place( x=30, y = 150 )
entry.focus_set() # foco en textbox

entry2 = ttk.Entry() # textbox 2
entry2.place( x=30, y = 200 )


top.mainloop()

Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

no me agrega control entry a form secundario

Publicado por Antoni Masana (67 intervenciones) el 27/06/2023 17:58:41
A mi no me sale el error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from tkinter import*
import tkinter
from tkinter import ttk
from tkinter import messagebox as MessageBox
top = tkinter.Tk()
 
##############
 
def GetTexto():
    result=entry.get()
    entry2.insert(0, result)
    MessageBox.showinfo("texto insertado en text1 ")
 
def Formclientes():
    global second
    second = Toplevel()
    second.geometry('600x600')
    second.title("ABM CLIENTES")
    entry1 = Entry( second, width = 35 )
 
 
top.config(width=800, height=600)
top.configure(bg = "#53CDB8") # color del formulario
top.title("SISTEMA DE ADMINISTRACION")
 
boton = ttk.Button(top,text = 'CLIENTES' , command=Formclientes)
boton.place(x=150, y=20)
 
boton1 = ttk.Button(top, text="CHOFERES", command=GetTexto )
boton1.place(x=150, y=60)
 
entry = ttk.Entry() # textbox
 
entry.place( x=30, y = 150 )
entry.focus_set() # foco en textbox
 
entry2 = ttk.Entry() # textbox 2
entry2.place( x=30, y = 200 )
 
top.mainloop()



La versión de Python que utilizo:

1
2
C:\LWP> python -V
Python 3.10.10

Saludos.
\\//_

Captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

no me agrega control entry a form secundario

Publicado por eduardo (6 intervenciones) el 28/06/2023 01:41:08
desde ya gracias por la rta . No es que me de error , lo que planteo es que no me agrega el control entry en el formulario secundario.
al menos pense que esta linea
entry1 = Entry( second, width = 35 )

me agregaba el control al form secundario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

no me agrega control entry a form secundario

Publicado por Antoni Masana (67 intervenciones) el 28/06/2023 10:54:37
Puede que si lo agrega pero no lo ves porque tiene el mismo color que el fondo.


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

no me agrega control entry a form secundario

Publicado por eduardo (6 intervenciones) el 28/06/2023 15:08:06
gracias Antoni .

Ya encontre el problema
Faltaba q investigue mas .
Poniendo entry1.grid( row = 0 ) logre que lo muestre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

no me agrega control entry a form secundario

Publicado por Rolando José (44 intervenciones) el 27/07/2023 04:13:02
Encuentro varios errores en el script, importar tkinter pero no lo direcciona a ningun obteto sino a "*" y el asterisco indica cualquier otro objeto o clase, por lo que el evaluador TCL tendria dificultad para saber que es lo que quieres hacer con la orden * construye *

se debe importar tkinter y dirigirlo a un nombre especifico para que se cree ese objeto que herede toda la libreria y luego se pueda llamar los widgets como clases de ese objeto.

Ya para TCL es dificil saber que hacer, porque python no ejecuta nada, solamente crea cadenas que TCL debe evaluar, en TCL una palabra reservada es * porque indica cualquier cosa. de otra forma por ejemplo se crea el toplevel top y python tiene que crear la cadena "wm .top geometry "800x600+0+0" para que TCL que es el que se esta ejecutando por debajo entienda que la ventana .top debe tener las dimensiones 800x600 y estar ubicada en 0 0 su borde superior izquierdo.

quizas no se para que usa toplevel, si no va a importar una libreria especifica para esa ventana. Perfectamente deberia crear dos frames, uno de 400x600 y ubicarlos con pack uno al lado de otro.

El problema que en el formcliente no le aparece el Entry, es porque se le olvido empaquetarlo.

primero se define el widget y luego se sujeta al widget padre, para que se pueda ver.
La diferencia entre TCL y python es que en TCL se puede empaquetar en la misma línea que se define cada widget.
En python: la linea 19 asi:
entry1 = Entry( second, width = 35 )
y en la 20 deberia usar place para sujetar el entry al toplevel.
entry1.place(x=150,y=150)

en TCL seria asi:
place [Entry .second.e0 -textvar entrada -font "arial 10" -width 10] -x 150 -y 150

así TCL puede crear el mismo GUI en muchas menos líneas de código y totalmente compatible con Windows Linux MacOS y Android.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar