Python - Si pudieran ayudarme por favor, no logro unir las dos ventanas que estoy realizando

 
Vista:

Si pudieran ayudarme por favor, no logro unir las dos ventanas que estoy realizando

Publicado por sebastian (4 intervenciones) el 02/11/2021 01:09:36
import tkinter.ttk
from tkinter import *
from tkinter import messagebox as MessageBox
global ventana0
from PIL import ImageTk, Image

ventana0 = Tk()
ventana0.geometry("650x550")
username_label = Label(text=" Bienvenido a SebasCorp.Presione siguinete para ingresar al registro de datos ")
username_label.place(x=315, y=70)
username_label.place(x=140, y=350)

v2= ventana

submit_btn = Button(ventana0, text="Siguiente", width="30", height="2", bg="#00CD63",command =v2)
submit_btn.place(x=400, y=500)

imagen = ImageTk.PhotoImage(Image.open(r'C:\Users\Sebastian\PycharmProjects\pythonProject\Sebascorp0.png'))
label = Label(image=imagen)
label.pack()
label.place(x=90, y=100)
ventana0.mainloop()

def emergente():
usu=username.get()
sIndex = password.get()
lis = lstDesplegable.get()
cadena = ("USUARIO:", usu ) + ( "Contraseña:", sIndex)+ ( "Rol:", lis)
MessageBox.showinfo("Valores ingresados", cadena)

def v2 () :
ventana = Tk()
ventana.geometry("650x550")
ventana.title("BIENVENIDO")
ventana.resizable(False, False)
ventana.config(background="#273746")
main_title = Label(text = " BIENVENIDO ", font = ("Cambria", 21), bg ="#273746" , fg = "black", width = "520")
main_title.pack()

username_label = Label(text="USUARIO", bg="#D5DBDB")
username_label.place(x=315, y=70)
password_label = Label(text="CONTRASEÑA", bg="#D5DBDB")
password_label.place(x=305, y=130)
age_label = Label(text="Rol de usuario", bg="#D5DBDB")
age_label.place(x=304, y=190)

username = StringVar()
password = StringVar()
fullname = StringVar()
age = StringVar()

username_entry = Entry(textvariable=username, width="40")
password_entry = Entry(textvariable=password, width="40", show="*")

username_entry.place(x=222, y=100)
password_entry.place(x=222, y=160)

submit_btn = Button(ventana, text="Ingresar", width="30", height="2", command=emergente, bg="#00CD63")
submit_btn.place(x=235, y=300)

lstDesplegable= tkinter.ttk.Combobox(ventana, width=37)
eleccion=["Usuario", "Administrador"]
lstDesplegable['values'] = eleccion
lstDesplegable.pack()
lstDesplegable.place(x=222, y=220)

c1 = Checkbutton(ventana, text="RECORDAR MIS DATOS", onvalue=1, offvalue=0, bg ="#273746", font='Helvetica 7 bold')
c1.pack()
c1.place(x=222, y=260)

ventana.mainloop()
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
sin imagen de perfil

Si pudieran ayudarme por favor, no logro unir las dos ventanas que estoy realizando

Publicado por Andrés Felipe (3 intervenciones) el 04/11/2021 02:35:07
Hola sebastian, no soy un experto pero tengo algunos conceptos claros. Deberías empezar a repasar un poco de POO "programación orientada a objetos" de esta manera el código se ve mas organizado. Me tome el atrevimiento de modificar tu codigo.

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
import tkinter.ttk
from tkinter import *
from tkinter import messagebox
 
 
class Ventana(Tk):
 
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
 
        self.geometry("650x550")
        self.title("Bienbenido")
        self.resizable(0,0)
        self.rowconfigure(0,weight=1)
        self.columnconfigure(0,weight=1)
 
        self.paginas=dict()
 
        for f in (Pagina_1,V2):
            frame=f(self,self)
            self.paginas[f]=frame
            frame.grid(row=0,column=0,sticky="nsew")
        self.cambio_pagina(Pagina_1)
 
    def cambio_pagina(self,pagina_llamada):
        frame=self.paginas[pagina_llamada]
        frame.tkraise()

En esta primera clase que es la ventana principal hereda de Tk() es donde creo un diccionario para poner las otras dos clases que heredan de Frames que son las paginas.

1
2
3
4
5
6
7
8
9
10
11
12
13
class Pagina_1(Frame):
 
    def __init__(self,contenedor,controlador,*args,**kwargs):
        super().__init__(contenedor,*args,**kwargs)
 
        menu_principal_1=Frame(self)
        menu_principal_1.pack(expand=1)
 
        username_label = Label(menu_principal_1,text=" Bienvenido a SebasCorp.Presione siguinete para ingresar al registro de datos ")
        username_label.pack(pady=10)
 
        submit_btn = Button(menu_principal_1, text="Siguiente", width="30", height="2", bg="#00CD63",command=lambda:controlador.cambio_pagina(V2))
        submit_btn.pack()

Llame las paginas como las tenias para que sea facil de que lo leas, en esta clase solo esta el Label y el Buttoon para pasar a la siguiente pagina.

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
41
42
43
44
45
class V2(Frame):
 
    def __init__(self,contenedor,controlador,*args,**kwargs):
        super().__init__(contenedor,*args,**kwargs)
 
        self.config(bg="#273746")
 
        username = StringVar()
        password = StringVar()
        fullname = StringVar()
        age = StringVar()
 
        menu_principal_2=Frame(self,bg="#273746")
        menu_principal_2.pack(expand=1)
 
        username_label = Label(menu_principal_2,text="USUARIO", bg="#D5DBDB")
        username_label.grid(row=1,column=1)
 
        password_label = Label(menu_principal_2,text="CONTRASEÑA", bg="#D5DBDB")
        password_label.grid(row=2,column=1)
 
        age_label = Label(menu_principal_2,text="Rol de usuario", bg="#D5DBDB")
        age_label.grid(row=3,column=1)
 
        username_entry = Entry(menu_principal_2,textvariable=username, width="40")
        username_entry.grid(row=1,column=2)
 
        password_entry = Entry(menu_principal_2,textvariable=password, width="40", show="*")
        password_entry.grid(row=2,column=2)
 
        lstDesplegable= tkinter.ttk.Combobox(menu_principal_2,textvariable=fullname, width=37)
        eleccion=["Usuario", "Administrador"]
        lstDesplegable['values'] = eleccion
        lstDesplegable.grid(row=3,column=2)
 
        c1 = Checkbutton(menu_principal_2, text="RECORDAR MIS DATOS", onvalue=1, offvalue=0, bg ="#273746", font='Helvetica 7 bold')
        c1.grid(row=4,column=2)
 
        submit_btn = Button(menu_principal_2, text="Ingresar", width="30", height="2", bg="#00CD63")
        submit_btn.grid(row=5,columnspan=3)
 
 
if __name__=="__main__":
    app=Ventana()
    app.mainloop()

Y en esta segunda clase es en donde puse los Labels, Entrys, Buttoon y demás widgets para el registro de usuario...
Te recomiendo repases este código no es complicado. y si lo que quieres es abrir otras ventanas emergentes te recomiendo repases el método TOPLEVEL().
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