Desarrollando una interfaz gráfica para CRUD en Python y MySQL paso a paso

00:25:04
https://www.youtube.com/watch?v=bwX5HnfyhfU

Résumé

TLDREn este video del canal Python 101, se diseña una interfaz gráfica en Python utilizando la biblioteca Tkinter, que permite conectar y manipular datos de una base de datos. El video es el primero de una serie enfocada en desarrollar un ejercicio amplio, comenzando con el diseño de la interfaz. El ejercicio tiene campos de identificación, nombre del país, capital y código de moneda. Se explican los pasos para estructurar y dividir el código en archivos separados, uno principal y otro para la clase de la ventana. Se crean elementos gráficos como paneles, botones, y cajas de texto y se muestra cómo ubicar y configurar cada elemento. Además, se enseña a agregar un control Treeview para gestionar los datos y a definir los encabezados de sus columnas. A lo largo de la serie, se abordará cómo realizar operaciones CRUD en la interfaz creada.

A retenir

  • 🖥️ Diseño de interfaz gráfica usando Tkinter en Python.
  • 🔄 Separación del código en múltiples archivos para mejor organización.
  • 🔧 Implementación de un control Treeview para mostrar datos.
  • 🗃️ Configuración de una base de datos con identificación, país, capital y moneda.
  • 🎨 Añadido de botones y cajas de texto para interacción del usuario.
  • 🖱️ Interactividad: botones para nuevas funcionalidades futuras.
  • 📚 Uso del módulo ttk para temas y widgets avanzados.
  • 🏗️ Construcción de un proyecto de Python estructurado con main y ventanas.
  • 🔍 Presentación de cómo embeber datos manualmente en el Treeview.
  • 📑 Preparación para operaciones CRUD a continuación en la serie.

Chronologie

  • 00:00:00 - 00:05:00

    El video comienza con una introducción al canal Python 101 y menciona que se dividirá en varios videos. El objetivo es utilizar una base de datos con campos como id, o3, capital y currencycode, cargando datos en un control de tipo treeview para visualizarlos y manipulándolos con texto de entrada para agregar, modificar o eliminar registros. Inicialmente, se crea el diseño de una interfaz gráfica con paneles y botones utilizando Python y Tkinter, y se moviliza el código para estructurarlo mejor dividiendo en archivos diferentes.

  • 00:05:00 - 00:10:00

    El segundo segmento del video continúa con la guía para estructurar el código de la interfaz gráfica. Se crea una clase llamada 'ventana' que hereda de frame en la que se coloca un constructor. También se explica cómo importar y utilizar la clase 'ventana' en el archivo principal (main.py) y cómo separar funcionalidades en archivos diferentes para un mejor manejo del código. Se introduce la creación de un panel vacío con un color específico y se explica cómo hacerlo visible, y se añaden métodos para gestionar esta estructura.

  • 00:10:00 - 00:15:00

    En este segmento, se añaden botones a la interfaz gráfica como 'nuevo', 'modificar' y 'eliminar'. Los botones se declaran como variables miembro de la clase para poder ser llamados desde otras funciones. Para cada botón, se define un método (ejemplo: fnuevo, fmodificar) que reaccionará a eventos como clics. El video también muestra cómo crear otro panel con cajas de texto para entrada de datos y cómo estructurar el código para mantener un estilo limpio y manejable. El proceso se describe detalladamente paso a paso.

  • 00:15:00 - 00:25:04

    Finalmente, el video explica cómo añadir un control de tipo gridview utilizando la librería ttk. Se detalla cómo establecer el número de columnas y sus propiedades, y cómo añadir encabezados para cada columna. El video culmina mostrando cómo insertar manualmente un elemento en el gridview, lo que se usará para visualizar datos de la base de datos. Al final, aunque todavía no tiene funcionalidad, se ha completado la interfaz gráfica. El próximo video se centrará en conectar y extraer datos de una base de datos para poblar el gridview.

Afficher plus

Carte mentale

Mind Map

Questions fréquemment posées

  • ¿Qué lenguajes de programación y bibliotecas se utilizan en el video?

    Python con la biblioteca Tkinter y también se utiliza el módulo ttk para el control Treeview.

  • ¿Qué se aprende en este video?

    Se aprenderá a crear una interfaz gráfica básica para realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) con una base de datos.

  • ¿Se crean otros elementos gráficos aparte de botones?

    Sí, además de los botones, se utiliza el control Treeview para mostrar los datos de la base de datos.

  • ¿Cómo se agrega funcionalidad a los botones creados?

    Para agregar funcionalidad a los botones, es necesario definir funciones que se ejecutarán al hacer clic en cada botón.

  • ¿La implementación del ejercicio se realiza en un solo video?

    El ejercicio se aborda en varios videos debido a su extensión, comenzando por el diseño de la interfaz.

Voir plus de résumés vidéo

Accédez instantanément à des résumés vidéo gratuits sur YouTube grâce à l'IA !
Sous-titres
es
Défilement automatique:
  • 00:00:01
    Hola qué tal Amigas y amigos Bienvenidos
  • 00:00:04
    a su canal python 101 comenzamos este
  • 00:00:09
    ejercicio lo vamos a desarrollar en
  • 00:00:11
    varios vídeos porque realmente es un
  • 00:00:13
    ejercicio un poquito amplio pero bueno
  • 00:00:15
    Entonces de qué se trata de qué vamos a
  • 00:00:18
    tener una base de datos en donde tenemos
  • 00:00:21
    estos Campos que es el id o3 capital y
  • 00:00:25
    currencycle lo que vamos a hacer es una
  • 00:00:27
    consulta es a base de datos vamos a
  • 00:00:29
    cargar los datos los registros de esa
  • 00:00:32
    base de datos en este control que es un
  • 00:00:34
    trivium y de este lado vamos a poner
  • 00:00:36
    unas cajas de texto para poder agregar
  • 00:00:38
    nuevos registros podremos modificar los
  • 00:00:42
    que están aquí eliminar alguno darle
  • 00:00:44
    guardar o cancelar
  • 00:00:47
    Esta es la base de datos que vamos a
  • 00:00:50
    estar utilizando Pero no te preocupes
  • 00:00:51
    por ella ahorita ya te diré Cómo puedes
  • 00:00:55
    bajarte esta base de datos de ejemplo
  • 00:00:57
    que de hecho ya la utilice en videos
  • 00:01:01
    anteriores vamos a empezar con el diseño
  • 00:01:03
    de la interfaz es decir lo primero que
  • 00:01:06
    vamos a hacer es esto vamos a crear
  • 00:01:08
    estos paneles con estos botones estas
  • 00:01:10
    cajas de texto y vamos a colocar este
  • 00:01:13
    control trivium Así que comenzamos con
  • 00:01:15
    un documento vacío de python y lo
  • 00:01:18
    primero que vamos a hacer aquí es crear
  • 00:01:20
    el punto de inicio que es esta sentencia
  • 00:01:23
    If name es igual a Main entonces
  • 00:01:25
    llamamos a un método que aquí hemos
  • 00:01:28
    definido como me Y a partir de este
  • 00:01:32
    método vamos a comenzar pegando el
  • 00:01:35
    código lo único que vamos a tener aquí
  • 00:01:38
    dentro de este método Main son estas
  • 00:01:41
    sentencias estas ya te las expliqué pero
  • 00:01:44
    ahorita te indico dónde bueno primero
  • 00:01:48
    que hacemos creamos un objeto de la
  • 00:01:50
    clase tk que va a ser el frame principal
  • 00:01:54
    le ponemos un título sería como el
  • 00:01:56
    título de la ventana crud payton mysql
  • 00:01:59
    luego creamos un objeto de una clase que
  • 00:02:02
    vamos a hacer ahorita que es la clase
  • 00:02:04
    ventana esta clase ventana no la tenemos
  • 00:02:06
    la vamos a crear ahorita pero le pasamos
  • 00:02:08
    como parámetro a Ruth que es el frame
  • 00:02:12
    principal y este es el look precisamente
  • 00:02:15
    de esta ventana Entonces como vamos a
  • 00:02:19
    trabajar con una aplicación gráfica
  • 00:02:20
    necesitamos importar todo del paquete en
  • 00:02:24
    este caso de kinder O puedes ir
  • 00:02:25
    importando las clases nada más que
  • 00:02:27
    necesites
  • 00:02:29
    y aquí abajo lo que vamos a hacer es que
  • 00:02:31
    vamos a crear esta clase ventana esta
  • 00:02:33
    que te decía recuerda aquí te decía
  • 00:02:35
    creamos un objeto de la clase ventana la
  • 00:02:37
    ventana no existe aquí la creamos la
  • 00:02:39
    clase ventana que hereda de frame
  • 00:02:41
    entonces este parámetro Root es el que
  • 00:02:44
    recibe aquí como frame y dentro de la
  • 00:02:47
    clase ventana lo que vamos a hacer es
  • 00:02:49
    colocar su constructor que es este que
  • 00:02:51
    tenemos aquí lo único que hace es llamar
  • 00:02:54
    al constructor de la clase padre le
  • 00:02:57
    pasamos el ancho que va a tener nuestra
  • 00:02:59
    ventana que es 680 y un alto de
  • 00:03:03
    260 y bueno lo que hacemos aquí es
  • 00:03:06
    colocamos el master llamamos a pack para
  • 00:03:08
    que se muestre para que se muestre los
  • 00:03:11
    elementos y llamamos aquí un método
  • 00:03:13
    crear widget este método crea widgets
  • 00:03:17
    Aquí lo vamos a colocar es este que
  • 00:03:19
    tenemos aquí Ahí es donde nosotros vamos
  • 00:03:21
    a crear todos los widgets o todos los
  • 00:03:23
    controles que vamos a utilizar si
  • 00:03:26
    corremos este código podrás ver que te
  • 00:03:28
    aparece una ventana que tiene Este
  • 00:03:30
    título que se llama crud python mysql y
  • 00:03:33
    que tiene unas dimensiones de 680 por
  • 00:03:37
    260 Esta es la ventana que acabamos de
  • 00:03:40
    crear ahora bien si ese código te
  • 00:03:43
    pareció un poco complicado te recuerdo
  • 00:03:45
    Mira ya te expliqué todo eso en un video
  • 00:03:48
    anterior que arriba a la arriba a la
  • 00:03:49
    derecha te voy a dejar el enlace a este
  • 00:03:51
    vídeo Yo te recomiendo que primero veas
  • 00:03:54
    este vídeo si no sabes utilizar este
  • 00:03:57
    código básico Porque en ese vídeo es
  • 00:03:59
    donde te explico toda esta parte de las
  • 00:04:01
    clases del frame del constructor y de
  • 00:04:04
    este método crear widgets pero lo que
  • 00:04:06
    tenemos aquí ya es una ventana vacía y
  • 00:04:09
    lo que aquí va a ir creciendo pues es
  • 00:04:11
    esta clase que es la clase ventana pero
  • 00:04:14
    realmente para que no tengamos todo el
  • 00:04:17
    código en un mismo archivo voy a crear
  • 00:04:19
    otro archivo que se llame precisamente
  • 00:04:21
    ventana en donde vamos a meter nada más
  • 00:04:23
    el código de esta clase ventana
  • 00:04:26
    este archivo es el Main entonces pues
  • 00:04:30
    vamos aquí a crear un nuevo archivo y le
  • 00:04:32
    ponemos aquí ventana punto pae es este
  • 00:04:36
    que tenemos aquí y aquí en este archivo
  • 00:04:39
    es donde nos vamos a traer la clase
  • 00:04:42
    ventana esta que tenemos aquí Entonces
  • 00:04:45
    lo vamos a lo voy a cortar y lo voy a
  • 00:04:49
    pasar acá esto solo es para estructurar
  • 00:04:51
    el código lo puedes dejar ahí si gustas
  • 00:04:54
    necesito también no me llevo la librería
  • 00:04:57
    porque la necesito acá porque estoy
  • 00:04:59
    creando un objeto de la clase tk pero
  • 00:05:02
    copio también porque esa librería
  • 00:05:04
    también la necesito acá Entonces en este
  • 00:05:09
    archivo ventana únicamente vamos a tener
  • 00:05:11
    la clase ventana que representa nuestra
  • 00:05:13
    ventana y únicamente acá pues tenemos el
  • 00:05:16
    mail ahora lo que necesitamos hacer
  • 00:05:19
    también es ahora importar del archivo
  • 00:05:22
    ventana y lo que vamos a importar del
  • 00:05:26
    archivo ventana pues va a ser la clase
  • 00:05:28
    precisamente la clase ventana la clase
  • 00:05:32
    ventana que es con
  • 00:05:34
    v o podemos importar todo igual como lo
  • 00:05:37
    hicimos arriba Es decir de este archivo
  • 00:05:40
    ventana vamos a importar todo y si
  • 00:05:43
    corremos ahora este programita pues ahí
  • 00:05:45
    está la misma ventana es exactamente lo
  • 00:05:46
    mismo No cambia nada simple y
  • 00:05:48
    sencillamente separamos es decir en un
  • 00:05:51
    archivo que se llama main.pipe ahí se
  • 00:05:54
    encuentra nuestro Main que es el punto
  • 00:05:56
    de inicio sale pero aquí utilizamos un
  • 00:05:59
    objeto de la clase ventana que se
  • 00:06:01
    encuentra precisamente Dentro de este
  • 00:06:03
    archivo ventana Aquí es donde ahora
  • 00:06:05
    vamos a ir trabajando y bueno ahora lo
  • 00:06:08
    que vamos a hacer es que vamos a crear
  • 00:06:10
    este panel este que está aquí que tiene
  • 00:06:12
    los tres botones vamos a crearlo ahorita
  • 00:06:15
    el puro panel vacío lo vamos a poner con
  • 00:06:17
    un color azul claro donde se crean los
  • 00:06:20
    controles Pues aquí en el método crear
  • 00:06:22
    widgets Entonces cómo creamos un frame
  • 00:06:26
    Bueno un frame es un objeto de la clase
  • 00:06:28
    frame le tenemos que pasar como
  • 00:06:30
    parámetro su contenedor que es la
  • 00:06:32
    ventana actual que sería el objeto
  • 00:06:35
    actual de la clase ventana y esto lo
  • 00:06:37
    indicamos con Seth le pasamos aquí un
  • 00:06:40
    color que sería esto en hexadecimal es
  • 00:06:42
    un azul clarito y este va a ser nuestro
  • 00:06:45
    objeto frame 1 ojo este objeto no es un
  • 00:06:49
    miembro de la clase todo esto ya lo
  • 00:06:50
    expliqué en videos anteriores Entonces
  • 00:06:52
    te recomiendo que si no los has visto
  • 00:06:55
    pues te suscribas en el canal aprovecho
  • 00:06:58
    ahorita para pedirte suscríbete al Canal
  • 00:07:00
    ve al Canal Busca la lista sobre python
  • 00:07:03
    hay más de 30 vídeos sobre python
  • 00:07:05
    explico todo esto y no olvides darle
  • 00:07:08
    like por favor para que este contenido
  • 00:07:10
    le llegue a más personas Bueno continuó
  • 00:07:13
    Este frame Entonces estamos creando aquí
  • 00:07:16
    una variable persona variable local pero
  • 00:07:18
    el frame existe no es una variable de
  • 00:07:21
    clase no es un miembro de clase ese
  • 00:07:23
    frame lo vamos a colocar estas
  • 00:07:25
    posiciones la estamos la posición x0 y
  • 00:07:28
    el 0 o sea va a estar ubicado hasta la
  • 00:07:30
    parte superior izquierda en la esquinita
  • 00:07:31
    y tiene un ancho de 93 y un alto de
  • 00:07:35
    259 Ahora cuando quieras correr Este
  • 00:07:39
    programa no vayas a correr este archivo
  • 00:07:42
    que es la clase ventana porque aquí no
  • 00:07:44
    hay un punto de inicio aquí no está el
  • 00:07:46
    Main si tú corres este archivo pues
  • 00:07:48
    prácticamente lo que va a hacer es
  • 00:07:49
    compilar te lo checarte Si ahí tienes
  • 00:07:51
    algún error sé yo pero no te va a correr
  • 00:07:53
    tu mail Entonces de dónde tienes que
  • 00:07:55
    correrlo de donde tienes el Main que es
  • 00:07:58
    precisamente el archivo Main aquí
  • 00:08:00
    tenemos nuestro Main que es nuestro
  • 00:08:02
    punto de inicio Así que este sí lo
  • 00:08:04
    podemos correr y una vez que lo corras
  • 00:08:06
    te vas a dar cuenta de que hay esta raya
  • 00:08:09
    aquí a la izquierda Este es el panel que
  • 00:08:12
    acabamos de crear este panel
  • 00:08:14
    Precisamente es este objeto que tenemos
  • 00:08:17
    aquí frame 1 Este frame es un color azul
  • 00:08:21
    y tiene un ancho de 93 y un alto de 259
  • 00:08:25
    o puede sesenta igual que el alto de la
  • 00:08:28
    ventana Ahí está ahora Bueno este frame
  • 00:08:32
    tiene tres botones dentro de él uno que
  • 00:08:34
    es el botón nuevo otro que es modificar
  • 00:08:36
    y otro que es eliminar y aquí te estoy
  • 00:08:38
    poniendo el código del botón nuevo
  • 00:08:39
    entonces creamos aquí un botón pero a
  • 00:08:42
    diferencia de cuando creamos la variable
  • 00:08:44
    frame esta variable no fue una variable
  • 00:08:47
    miembro de la clase el botón nuevo Aquí
  • 00:08:51
    sí tiene que ser una variable miembro
  • 00:08:53
    entonces ponemos el punto botón nuevo de
  • 00:08:56
    esto de esta manera Esta es una variable
  • 00:08:59
    miembro Porque necesitamos una variable
  • 00:09:00
    miembro con el botón porque el botón lo
  • 00:09:02
    vamos a llamar desde fuera de este
  • 00:09:05
    método es decir vamos a tener otras
  • 00:09:07
    funciones por acá afuera desde donde
  • 00:09:09
    vamos nosotros a tener que llamar a este
  • 00:09:12
    botón este botón nuevo entonces es un
  • 00:09:15
    botón aquí indicamos en dónde va a estar
  • 00:09:17
    ubicado Cuál es su contenedor bueno es
  • 00:09:20
    el frame 1 Ese es su contenedor el texto
  • 00:09:22
    que va a tener es nuevo y aquí indicamos
  • 00:09:25
    el que es qué método se va a llamar
  • 00:09:29
    cuando tú des clic en Ese botón se va a
  • 00:09:31
    llamar a un método que se llama F nuevo
  • 00:09:33
    entonces ese método no existe vamos a
  • 00:09:36
    crearlo por acá arriba para que lo
  • 00:09:39
    tengamos entonces ponemos Def nuevo
  • 00:09:43
    esta este método pues tiene que ser un
  • 00:09:46
    método miembro entonces tiene que
  • 00:09:48
    recibir como primer parámetro en este
  • 00:09:50
    caso self ahorita vamos a indicarle aquí
  • 00:09:53
    adentro Paz nada más no tiene nada Pero
  • 00:09:56
    para que no nos marque error entonces
  • 00:09:58
    este es el método que se va a llamar
  • 00:09:59
    cuando nosotros demos clic en este botón
  • 00:10:01
    nuevo este botón nuevo Tiene un
  • 00:10:05
    background de azul y un Ford ground de
  • 00:10:08
    blanco o sea las letras van a estar en
  • 00:10:10
    color blanco las letras que dice nuevo
  • 00:10:12
    luego lo que hacemos aquí es colocarlo
  • 00:10:16
    con Place podemos colocarlo de otras
  • 00:10:18
    formas Pero podemos ser complace en la
  • 00:10:20
    posición x 5 y 50 no de la ventana sino
  • 00:10:25
    de su contenedor que el frame 1 y este
  • 00:10:28
    botón tiene un ancho de 80 y un alto de
  • 00:10:31
    30 vamos a correr nuestro programa Pero
  • 00:10:34
    antes de correrlo primero debes guardar
  • 00:10:36
    este archivo entonces dale aquí este
  • 00:10:39
    save o control S para guardar el archivo
  • 00:10:41
    y luego Pásate al archivo del Main y
  • 00:10:44
    luego desde aquí Corre tu programa y
  • 00:10:47
    ahora sí podrás ver que aparece este
  • 00:10:49
    botoncito que tenemos aquí este botón
  • 00:10:51
    nuevo que no hace nada cuando damos clic
  • 00:10:52
    en él porque no hemos agregado ningún
  • 00:10:55
    código aquí en F nuevo que es la función
  • 00:10:58
    que se ejecuta cuando damos clic en este
  • 00:11:01
    botón Pero entonces ya tenemos este
  • 00:11:04
    botón nos faltan dos
  • 00:11:06
    y aquí tengo ya el código de los dos
  • 00:11:09
    botones el botón modificar y el botón
  • 00:11:11
    eliminar ambos son
  • 00:11:14
    variables miembro de la clase por eso
  • 00:11:17
    tienen self sale Por qué Porque igual
  • 00:11:19
    los vamos a tener que utilizar desde
  • 00:11:22
    fuera bien en este caso este botón
  • 00:11:25
    modificar pues ambos están dentro del
  • 00:11:28
    frame su contenedor es el frame su texto
  • 00:11:30
    es modificar o eliminar y luego llaman
  • 00:11:33
    una función F modificar y el otro F
  • 00:11:36
    eliminar sub background es azul y su
  • 00:11:40
    forround es blanco igual de ambos los
  • 00:11:43
    colocamos ambos con Place en la
  • 00:11:46
    posiciones X5 y aquí 90 y acá 130 para
  • 00:11:51
    que esté más abajo y el with y el hate o
  • 00:11:54
    sea lo ancho y lo alto de ambos es el
  • 00:11:57
    mismo entonces hay que realizar también
  • 00:12:00
    estas funciones que es F modificar y F
  • 00:12:03
    eliminar Entonces por acá arriba vamos a
  • 00:12:07
    hacer esas funciones lo mismo vamos a
  • 00:12:11
    poner aquí self tenemos dos puntos y le
  • 00:12:15
    damos Paz Esa es la función modificar y
  • 00:12:18
    copiamos esta misma y con esto hacemos
  • 00:12:21
    la función eliminar Entonces ya están
  • 00:12:25
    aquí las dos funciones y si corremos
  • 00:12:28
    nuestro programa ya vemos que está el
  • 00:12:29
    botón nuevo el botón modificar y el
  • 00:12:32
    botón eliminar que sigue ahora crear el
  • 00:12:34
    panel que teníamos acá es decir ahora
  • 00:12:38
    vamos a hacer este otro panel Esta es un
  • 00:12:41
    azul un poco más fuerte que tiene esta
  • 00:12:43
    caja de texto y tiene aquí un Label con
  • 00:12:46
    ISO esta otra caja de texto control name
  • 00:12:48
    esta caja de texto capital la caja de
  • 00:12:50
    texto ocurre y los botones guardar y
  • 00:12:54
    cancelar
  • 00:12:55
    ahora lo que vamos a hacer es que vamos
  • 00:12:58
    entonces a crear este segundo frame y le
  • 00:13:00
    vamos a poner frame 2 si te das cuentas
  • 00:13:02
    es exactamente lo mismo que teníamos acá
  • 00:13:04
    arriba de hecho lo puedes copiar y pegar
  • 00:13:06
    acá abajo le cambias el color nada más
  • 00:13:08
    las posiciones en x95 porque porque
  • 00:13:12
    tiene que estar más hacia la derecha en
  • 00:13:15
    cero porque aparte de arriba y el ancho
  • 00:13:18
    es un poquito más ancho de 150 y el alto
  • 00:13:20
    igual de
  • 00:13:21
    259 si eliges este mismo color que yo he
  • 00:13:25
    elegido aquí Bueno te va a aparecer este
  • 00:13:27
    panel que tenemos aquí en un azul Pues
  • 00:13:30
    un poco diferente no es un azul igual
  • 00:13:34
    claro no le quise poner un azul fuerte
  • 00:13:36
    pero este ya tienes este panel y sobre
  • 00:13:39
    este vamos a poner los controles
  • 00:13:41
    y el primer control que vamos a poner
  • 00:13:43
    pues es este Label que está aquí nada
  • 00:13:46
    más que dice ISO 3 Este es un Label nada
  • 00:13:49
    más después vamos a poner una caja de
  • 00:13:52
    texto aquí Este es un control entre
  • 00:13:55
    entonces partimos de Label y abajo el
  • 00:13:58
    ente bien para poner un Label te digo
  • 00:14:01
    esto también ya lo expliqué en videos
  • 00:14:03
    anteriores el uso de Label el uso de
  • 00:14:06
    entry el uso de botones y ya lo tenemos
  • 00:14:08
    en videos anteriores bueno primero el
  • 00:14:12
    Label aquí se va a llamar lbl1 no es un
  • 00:14:15
    miembro de clase Porque no lo voy a
  • 00:14:16
    utilizar desde fuera de esta función va
  • 00:14:18
    a estar ahí pero no hay necesidad de
  • 00:14:21
    manipularlo desde fuera entonces un
  • 00:14:23
    objeto de la clase Label indicó Dónde
  • 00:14:25
    está contenido está contenido en el
  • 00:14:27
    frame 2 Cuál es su texto es esto que le
  • 00:14:30
    puse Aquí hizo tres Ese es su texto y
  • 00:14:33
    como lo ubico en la posición X3 y es 5
  • 00:14:36
    ojo no es de la ventana es una posición
  • 00:14:40
    con respecto
  • 00:14:41
    sufren que es este frame 2 no le pongo
  • 00:14:44
    ancho ni le pongo alto para que
  • 00:14:47
    precisamente lo ajuste solo al tamaño
  • 00:14:50
    del texto que tiene lo que se espera ver
  • 00:14:53
    cuando tú muestres este Label es esto
  • 00:14:56
    nada más hizo tres es lo único que hemos
  • 00:14:59
    creado ahora abajo vamos a poner un
  • 00:15:03
    pues es
  • 00:15:05
    le vamos a poner como nombre txt hizo 3
  • 00:15:09
    porque es una caja de texto pero claro
  • 00:15:11
    es un objeto de la clase entre y está
  • 00:15:15
    ubicado en el frame 2 es decir su
  • 00:15:17
    contenedor es el frame 2 si te das
  • 00:15:19
    cuenta la caja de texto si es un miembro
  • 00:15:22
    de clase por eso tiene cel para qué para
  • 00:15:24
    que nosotros podamos manipular la caja
  • 00:15:27
    de texto desde fuera de esta función
  • 00:15:29
    Recuérdate estamos en la función crear
  • 00:15:32
    widgets lo ubicamos esa caja de texto en
  • 00:15:35
    la posición X3 y 25 con un ancho de 50 y
  • 00:15:39
    un alto de 20
  • 00:15:41
    si corres tu programa pues esto lo que
  • 00:15:43
    vas a ver vas a ver aquí el Label que ya
  • 00:15:45
    te decía con ISO 3 y abajo este texto
  • 00:15:47
    este control entre que acabamos de
  • 00:15:50
    introducir en donde tú puedes escribir
  • 00:15:52
    texto es un control pequeño porque
  • 00:15:54
    realmente
  • 00:15:55
    el valor paraíso 3 son únicamente tres
  • 00:15:59
    caracteres entonces si te das cuenta
  • 00:16:01
    para poner un Label y un texto
  • 00:16:04
    requerimos de estas cuatro líneas
  • 00:16:06
    creamos el able lo ubicamos creamos el
  • 00:16:08
    texto lo ubicamos y ahora lo que vamos a
  • 00:16:11
    hacer es pues bueno si ya creamos estos
  • 00:16:13
    dos elementos de acá arriba ahora vamos
  • 00:16:15
    a crear estos dos que tenemos aquí
  • 00:16:18
    Counter name enable y su caja de texto
  • 00:16:21
    pero de una vez vamos a aprovechar para
  • 00:16:23
    crear estos dos que es capital y el
  • 00:16:26
    currency code porque realmente es lo
  • 00:16:28
    mismo las cuatro líneas que utilizamos
  • 00:16:31
    para estos dos las vamos a copiar y
  • 00:16:33
    únicamente vamos a cambiar algunos
  • 00:16:35
    valores es decir este mismo código
  • 00:16:38
    realmente nada más que ahora vamos a
  • 00:16:41
    poner un Label que diga Counter name lo
  • 00:16:45
    ubicamos una caja de texto igual vacía
  • 00:16:47
    que va a ser para escribir el country
  • 00:16:50
    name y cuyo nombre le estoy dando Aquí
  • 00:16:52
    nada más txt name sale las posiciones en
  • 00:16:57
    X3 en y 75 para que esté más abajo el
  • 00:17:01
    ancho y el alto
  • 00:17:03
    y aquí abajo vamos a poner
  • 00:17:07
    el Label en este caso y la caja de texto
  • 00:17:11
    también para capital aquí tenemos es son
  • 00:17:14
    las mismas cuatro sentencias nada más
  • 00:17:16
    cambian este caso dice capital Ese es el
  • 00:17:19
    Label aquí tenemos la ubicación va un
  • 00:17:23
    poco más abajo con y 105 la caja de
  • 00:17:27
    texto se llama text capital y tenemos
  • 00:17:29
    aquí el lugar y el ancho y el alto de
  • 00:17:33
    esta caja de texto
  • 00:17:35
    ahora vamos a colocar los controles para
  • 00:17:38
    currency code Ahí está Label para
  • 00:17:41
    currency code Tenemos aquí el lugar
  • 00:17:44
    donde vamos a ubicarlo xy la caja de
  • 00:17:47
    texto que se va a llamar txt currency y
  • 00:17:51
    esta caja de texto en donde nosotros la
  • 00:17:53
    estamos ubicando y con eso ya tenemos
  • 00:17:56
    todas las cajas de texto si corremos
  • 00:18:00
    nuestro programa vemos que está la caja
  • 00:18:02
    de texto paraíso 3 control name capital
  • 00:18:05
    y currency que nos falta los dos botones
  • 00:18:09
    acá abajo es decir falta este botoncito
  • 00:18:12
    que tenemos acá que es guardar y este
  • 00:18:15
    otro botón que tenemos acá que es
  • 00:18:18
    Cancelar Pero el código para agregar
  • 00:18:20
    botones Ya lo tenemos Porque agregamos
  • 00:18:22
    estos tres botones hace rato entonces es
  • 00:18:26
    lo mismo vamos a copiar ese código
  • 00:18:28
    Aquí vamos a poner el código de los dos
  • 00:18:31
    botones es decir este es el botón
  • 00:18:33
    guardar Pero estos botones están en el
  • 00:18:37
    mismo frame 2 acuérdate su texto es
  • 00:18:40
    guardar Llamar a la función guardar el
  • 00:18:43
    background de este botón queremos un
  • 00:18:44
    botón verde con un foreground o sea las
  • 00:18:47
    letras en blanco el otro botón que es el
  • 00:18:50
    botón Cancelar tiene un texto de
  • 00:18:52
    Cancelar llama a la función F Cancelar
  • 00:18:55
    tiene un background de rojo y un
  • 00:18:58
    foreground de blanco aquí tenemos las
  • 00:19:01
    posiciones donde vamos a colocar el
  • 00:19:03
    botón guardar Y dónde vamos a ubicar
  • 00:19:06
    también a colocar el botón cancelar los
  • 00:19:10
    dos botones Son miembros de la clase
  • 00:19:13
    actual por eso son self punto nombre del
  • 00:19:16
    botón Entonces nos faltan estas dos
  • 00:19:18
    funciones F guardar y F Cancelar vamos
  • 00:19:21
    acá arriba
  • 00:19:23
    vamos voy a copiar aquí estas dos
  • 00:19:25
    funciones y por acá abajo las vamos a
  • 00:19:28
    pegar una se va a llamar F guardar y la
  • 00:19:34
    otra se va a llamar F Cancelar Ahí está
  • 00:19:38
    entonces si te das cuenta pues Estas son
  • 00:19:41
    las funciones que se van a ejecutar
  • 00:19:42
    cuando demos nuevo modificar eliminar
  • 00:19:45
    guardar o cancelar y hasta ahorita si
  • 00:19:49
    corres tu programa podrás ver que ya
  • 00:19:51
    tenemos todas las cajas de texto y los
  • 00:19:54
    botones los cinco botones tres acá y dos
  • 00:19:57
    acá que nos falta para terminar nuestra
  • 00:20:00
    interfaz gráfica falta colocar en esta
  • 00:20:02
    parte un control gridview Entonces ya te
  • 00:20:07
    expliqué en un vídeo anterior Cómo
  • 00:20:09
    funciona ese control para trabajar con
  • 00:20:12
    TV necesitamos importar una librería que
  • 00:20:15
    es la librería
  • 00:20:16
    ttk Entonces lo hacemos con esta
  • 00:20:19
    sentencia que
  • 00:20:23
    se encuentran los widgets temáticos
  • 00:20:24
    ahora en el método crear widgets en el
  • 00:20:29
    mismo método donde estamos creando los
  • 00:20:30
    widgets aquí hasta abajo vamos a crear
  • 00:20:33
    este objeto Entonces cómo se va a llamar
  • 00:20:35
    el objeto le hemos puesto grid y este
  • 00:20:38
    objeto es un miembro de la clase porque
  • 00:20:40
    vamos a utilizarlo desde otros métodos
  • 00:20:43
    entonces va a ser igual a ttk punto
  • 00:20:46
    trivium este review es la clase para
  • 00:20:49
    crear este objeto trivium donde va a
  • 00:20:52
    estar contenido aquí no hicimos un panel
  • 00:20:54
    lo vamos a colocar directamente en la
  • 00:20:57
    ventana por eso le ponemos cell Y
  • 00:21:00
    cuántas columnas va a contener estamos
  • 00:21:02
    indicando aquí que va a tener cuatro
  • 00:21:04
    columnas Aunque si viste el vídeo en
  • 00:21:07
    donde explicó este control review
  • 00:21:09
    realmente van a ser 5 porque la primer
  • 00:21:12
    columna es la número 0
  • 00:21:15
    Y por qué necesitamos cinco columnas
  • 00:21:17
    bueno Porque estos son los datos que
  • 00:21:19
    vamos a mostrar 1 2 3 4 5 columnas sale
  • 00:21:25
    esta es la columna 1 la columna 2 3 4 y
  • 00:21:29
    esta vendría siendo la columna número
  • 00:21:31
    que se indica con el signo de gato y el
  • 00:21:35
    número cero posteriormente aquí abajo a
  • 00:21:38
    cada una de esas cinco columnas aquí
  • 00:21:41
    están Si puedes si gustas Mira empezamos
  • 00:21:44
    con esta que es la columna 1 aquí
  • 00:21:46
    indicamos que la una columna es la
  • 00:21:49
    columna 1 y es esta con el método colon
  • 00:21:53
    nos referimos a la columna 1 que va a
  • 00:21:56
    tener un ancho de 60 y que va a estar
  • 00:21:59
    centrado Su contenido y esto mismo
  • 00:22:02
    hacemos para la columna 2 3 y la columna
  • 00:22:05
    4 le estamos dando un ancho y estamos
  • 00:22:07
    indicando que van a estar centradas pero
  • 00:22:11
    ahora lo que hacemos aquí Esta es la
  • 00:22:15
    columna
  • 00:22:16
    0 la primer columna siempre hace
  • 00:22:19
    referencia con este signo de gato y el
  • 00:22:21
    número 0 y estamos indicando nada más
  • 00:22:23
    que tiene un ancho de 50 Entonces
  • 00:22:27
    entonces si te das cuenta pues son
  • 00:22:29
    Realmente cinco columnas las que tenemos
  • 00:22:32
    aquí y ahora vamos a crear los cinco
  • 00:22:36
    encabezados para Esas cinco columnas el
  • 00:22:39
    primer encabezado tiene texto ID el otro
  • 00:22:42
    ISO 3 el otro tiene el texto country
  • 00:22:45
    name la que sigue capital y la última
  • 00:22:47
    currency todas en Su contenido o este
  • 00:22:51
    texto va a estar centrado aquí nos lo
  • 00:22:55
    hacemos esto con el método heading lo
  • 00:22:58
    que estamos haciendo es editando el
  • 00:23:00
    encabezado Nada más por eso
  • 00:23:02
    utilizamos este método heading y nos
  • 00:23:05
    referimos al encabezado de la columna
  • 00:23:07
    cero o de la columna 1 de la columna 2
  • 00:23:11
    de la columna 3 y de la columna 4 lo que
  • 00:23:14
    nos falta es ubicar vamos a ubicar Pues
  • 00:23:17
    con Place también entonces indicamos
  • 00:23:19
    aquí grid.place qué posición en X 247 en
  • 00:23:24
    y 0 o sea va a estar hasta arriba va a
  • 00:23:27
    tener un ancho de 420 y un alto de 500
  • 00:23:31
    259 ahora esta este grid estaría vacío
  • 00:23:36
    vamos a agregar un elemento de manera
  • 00:23:38
    manual esta línea en donde vamos a
  • 00:23:41
    agregar un elemento de manera manual la
  • 00:23:44
    vamos a eliminar después Ahorita nada
  • 00:23:45
    más vamos a ponerlo como ejemplo cómo
  • 00:23:48
    agregamos una en Registro un renglón o
  • 00:23:50
    un elemento en este gris con el método
  • 00:23:53
    insert con el mes método insert
  • 00:23:56
    indicamos el padre no tiene padre todo
  • 00:23:58
    esto lo Explica en el vídeo de preview
  • 00:24:00
    te recuerdo hay que verlo antes este
  • 00:24:03
    elemento va a estar al final Como texto
  • 00:24:05
    va a tener uno que es el id el primer
  • 00:24:10
    elemento el que está aquí en text es el
  • 00:24:12
    que se va a ubicar en la columna primera
  • 00:24:14
    esta que tiene el ID
  • 00:24:16
    va a tener como ID 1 y luego todo lo que
  • 00:24:19
    indicamos acá en valores que son estos
  • 00:24:21
    cuatro valores se refieren a ISO 3
  • 00:24:23
    contra name capital y currency code
  • 00:24:26
    entonces hizo tres es arg country name
  • 00:24:30
    sería Argentina capital Buenos ao Aires
  • 00:24:34
    y currency code
  • 00:24:36
    ars si corres tu programa bueno te vas a
  • 00:24:40
    dar cuenta de que ahora pues ya está
  • 00:24:42
    toda esta interfaz gráfica completa no
  • 00:24:46
    tiene nada de funcionalidad Pero de eso
  • 00:24:48
    se trata Este vídeo nada más de hacer la
  • 00:24:50
    interfaz gráfica en el siguiente vídeo
  • 00:24:53
    Ahora sí vamos a traer datos desde la
  • 00:24:56
    base de datos
Tags
  • Python
  • Tkinter
  • interfaz gráfica
  • base de datos
  • CRUD
  • Treeview
  • diseño de interfaz
  • programación