Transcripciones
1. INTRODUCCIÓN: Hola, y bienvenidos a Python
GUI Development con Kiner. Mi nombre es Jotha Shokar y
soy tu instructora
para este curso Es el curso más completo
y bien organizado sobre desarrollo GI
con la ayuda de Kiner Al final de este curso, los estudiantes podrán
comprender lo básico de la programación
GI con Kiner construir aplicaciones de
escritorio completamente funcionales,
usar asistentes, administradores de diseño
y manejo de eventos, aplicar programación orientada a objetos
en la aplicación Kinter
y construir proyectos del mundo y construir Y si hablamos de la estructura
core, primero, te
voy a dar
la introducción, cómo podemos instalarla, qué es Kinter y
entendiendo el do principal Entonces vamos a saltar a gestión
de Kinter Window Después de eso, vamos
a aprender magos de Kinter. Aquí vamos a
aprender magos básicos. Entonces vamos a
aprender la gestión de maquetación, como el lugar de cuadrícula PAG
y los diseños anidados Entonces vamos a saltar al mago avanzado
de Kinter Vamos a
conocer todo el Wizzer
avanzado uno por uno Después de eso,
vamos a aprender sobre el evento Kiner fácilmente,
como el enlace de comandos, eventos de
teclado y mouse, etcétera. Y en el siguiente capítulo
vamos a hablar sobre la variable Kinter
y la vinculación de datos Después de eso, vamos a
trabajar con cuadros de diálogo, como cuadro de mensaje,
diálogo de campo y selector de color A continuación, vamos a
hablar de maniobras y Colbords. Después de eso,
vamos a aprender programación orientada a
objetos en Kiner. Puede crear
aplicaciones GI usando clases, estructuradas en aplicaciones
más grandes, hereda y asistentes En el siguiente capítulo,
vamos a aprender imágenes y lienzo. Y por fin, vamos a aprender mago temático con TTK Vamos a usar el módulo TTK, asistentes de
estilo,
temas personalizados, Entonces después de aprender
todo este capítulo, vamos a d
sumergirnos en la sección de proyectos. Vamos a cubrir
algunos proyectos básicos. Entonces vamos a cubrir
algunos proyectos intermedios, y también voy a cubrir
algunos proyectos avanzados. Entonces, ¿a qué esperas? Empecemos y creamos tu propia aplicación de escritorio.
Muchas gracias.
2. ¿Qué es TKinter?: Hola y bienvenidos. Este es el primer
tutorial sobre Kiner. De lo contrario, TK Enter. En este tutorial, te voy a presentar ¿qué es Kiner ¿Qué es Kinter y por qué
deberíamos aprender Kiner? Kinter es la biblioteca
GI estándar para Python. Proporciona una primera
y fácil manera de crear aplicaciones de
escritorio con elementos
gráficos como botones, etiqueta, cuadro de texto y mob Entonces básicamente, se trata una interfaz gráfica de usuario
que es construida por Python. Si tienes conocimientos básicos
sobre la codificación Python, entonces puedes comenzar este viaje. Es una de las formas más fáciles crear aplicaciones de escritorio. Y si hablo de
su punto clave, viene con biblioteca incorporada. TKNter viene con
pre-instalado con Python, por lo que no es necesario
instalarlo El siguiente punto clave es por
sobre TCL, de lo contrario TCA. Actúa como una interfaz Python
para el kit de herramientas TCL TGI. Básicamente, Kiner no es
un kit de herramientas GI en sí, sino más bien un rapero Python alrededor de un kit de
herramientas GI existente llamado TCL TK Ahora el quien es lo que
es TCL y Tiki? TCL significa lenguaje de
comandos de herramienta. Es un lenguaje de scripting, y TK es un kit de herramientas GI que fue desarrollado
originalmente para TCL
para crear una aplicación GUI Juntos, TCL y TK son un sistema
potente y flexible se utiliza para construir una interfaz de usuario Así que ahora tienes
potencia Pythons con la función TK GUI. Y la siguiente característica más importante
es que es la multiplataforma. Las aplicaciones Kiner se pueden ejecutar en Windows, McWays y Linux. Por lo que es versátil.
Entonces es ligero, adecuado para aplicaciones GI de tamaño pequeño a
mediano. Además, es impulsado por eventos. Apoye pobms impulsados por eventos como responder a
camarillas o Estos son los
puntos clave sobre Kiner. Ahora hablemos de ¿qué
podemos construir con Kiner? Podemos crear herramientas de escritorio como calculadora para
hacer apps, etcétera Podemos crear a partir de aplicaciones
basadas como sistema de inicio de sesión. Podemos desarrollar juegos o
simples programas interactivos. Podemos crear
aplicaciones de dibujo o herramientas visuales. Es muy adecuado para aplicaciones
GI de tamaño
pequeño a mediano. Podría ser tu
primer paso para crear una aplicación
GI con lenguaje de
programación Python. Por eso
deberías aprender Kiner. Esto es solo
Tutorial de Introducción de Kinder. En el siguiente tutorial,
vamos a aprender cómo podemos instalar Kiner para
diferentes plataformas Gracias por ver este
estado para nuestro próximo tutorial.
3. Instalación de Tkinter: Hola, chicos. Bueno verte B. Este es el segundo tutorial relacionado KinterT este tutorial, vamos a aprender sobre
cómo podemos instalar La mayoría de los casos kinter vienen
preinstalados con Python. Puedes verificar si está disponible ejecutando esto en el intérprete de
Python. Solo necesitas
escribir Importar Ginter, entonces necesitas
imprimir este estado De lo contrario, puedes
imprimir cualquier cosa. Si no devolvemos ningún
error en tu terminal, en ese caso, es
decir que está funcionando. Lo instalé en su sistema. Déjame mostrarte
la demostración. Como puedes ver, estamos en
mi editor de código de estudio de usuario. Al principio, voy a
importar el módulo Ginter. Importar Ginter TK
Enter, este. Entonces voy a
imprimir un comunicado. Imprimir. Dentro del doble curso, voy a escribir, Kinter,
TK, Enter está funcionando Voy a establecer este archivo. Malestar este archivo, si golpeo, molesto este archivo, si
presiono el botón Ejecutar, y como pueden ver está impreso, Kinter está funcionando porque está
preinstalado con Python Por eso no
necesitamos instalarlo. Si instalas Python usando
el instalador oficial, Kiner ya está disponible Para verificarlo, simplemente
escriba Python AM Ginter. Si lo escribe en su
Windows Powershell, debería aparecer
una pequeña
ventana de la GUI de demostración. Déjame mostrarte. Como pueden ver, estoy en mi Shell de Windows Power. Si ejecuto este código dash, déjame mostrarte y
luego presiono Enter, como puedes ver,
aparecerá una ventana. Es para el propósito de demostración. Es media, inter está
preinstalado con Python. la misma manera, si tu sistema
operativo es MWs para McWskiner
generalmente se incluye con Python en McWas. Si no es entonces solo
tipo, están instalados EW. Python TK y luego
escriba Python 3:00 A.M. Kiner. Se verificará que esté instalado
en su sistema. Pero para el sistema
operativo Linux, es posible que deba
instalarlo manualmente usando APT. Simplemente escriba PsudoePTGT Abdet. Después PsudoePTGT instala Python tres TK. Y para las pruebas, solo en el
tipo Python 3:00 A.M. Kinder. Así es como puedes instalar
Kinter en tu sistema. Para este tutorial, sis, vamos a utilizar el sistema operativo
Windows. Así que nuestros próximos todos los videos basados en el funcionamiento de Windows. Esto es para este tutorial. En el siguiente tutorial, vamos a
enloquecer nuestra primera ventana inter. Así que gracias por
ver este video, estad atentos para el
siguiente tutorial.
4. Tu primera ventana Tkinter con bucle principal: Entonces este es el primer
tutorial práctico relacionado con Kiner, y aquí vamos a construir
nuestra primera ventana de Kinker Entonces, como puedes ver en mi directorio de trabajo
actual, ya
creo un archivo Python. Al principio, necesitamos
importar el módulo. Tenemos que importar Kiner. Hay dos formas en las que
podemos importar el módulo TK. Al principio, podemos importar de
todo desde Kinter. Para eso solo
necesitamos escribir desde Kiner TKNter voy a importar Star,
va a importar todo,
cada clase, cada función
que esté dentro del módulo Pero hay otro método. Esta línea importa todas
las clases
y funciones necesarias de
la biblioteca Kinter Además, puedes importar
Ginter usando el nombre de Ali. Para eso necesitas
escribir import Enter as TK. Este es el segundo método
para importar KinterF ahora, me gustaría ir
con el primer método, así que voy a comentar
esta línea. No te preocupes. Lo explicaré más adelante en
nuestros próximos tutoriales. Después de eso, necesitamos
crear la ventana principal. Para crear la ventana principal, necesitamos definir una variable. En nuestro caso,
voy a escribir root, root igual a aquí, necesitamos usar la instancia de clase
T tipo T K y round
versus a la clase. Aquí creamos una
instancia de clase TK, que representa la
ventana raíz de su aplicación. A continuación, tenemos que iniciar
el bucle de eventos Ming. Para eso, aquí,
voy a escribir root dot main loop
y round brass. El método main event loop inicia el bucle de eventos kintered, que mantiene la ventana
abierta y responde a la interacción del usuario
hasta que se cierra Si configuro este archivo y ejecuto
este código en mi terminal, va a abrir una
ventana en blanco. Déjame mostrarte. Después de pulsar el botón Ejecutar,
como se puede ver, aquí se abre una ventana en blanco. Ahora voy a asignar
un título a esta ventana. Para eso para eso aquí
escriba root dot title. Dentro de los versos redondos,
voy a escribir, es simple Jim
tipo GUI simple. De lo contrario, puedes
escribir tu primer GI y necesitas configurar el archivo y ejecutar el
código en tu terminal. Emite el código en tu
terminal como puedes ver, ahora puedes ver el
nombre de la ventana para este sencillo GY, y puedes notar que
responde debido a
este bucle principal Aquí creamos nuestra
primera ventana GI en blanco con la ayuda de Python Kinder Ahora, hablemos de
la función de bucle principal. La función de punto raíz Mino inicia
el bucle de eventos de la GUI. Son formas de interacciones
como clic, mecanografía, etcétera Siempre es mantener la ventana abierta hasta que se cierre manualmente. Sin ella, la ventana
estaría flash o se cerraría instantáneamente. Si comento esta línea y configuro este archivo y ejecuto
este código en mi terminal, ahora se puede notar que
no abra la ventana. Básicamente, abrió la ventana, pero al instante
cierra la ventana. Si lo vuelvo a ejecutar, se nota apenas se
puede notar algo porque necesitamos este bucle principal
para mantener abierta esta ventana Ese es el uso del
bucle principal, y es importante. Esto es para este tutorial. En el siguiente tutorial, vamos a
hablar de geometría. Quédate incluso para el siguiente tutorial.
5. Creación de una ventana principal: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial relacionado con Python Kinter
en esta sección, aprenderemos a administrar y personalizar la ventana principal de Kinter Estos conceptos fundamentales
son esenciales para construir y pulir su aplicación GI
fácil En nuestro tutorial anterior, aprendemos a crear
la ventana principal. Para eso, necesitamos primero, necesitamos importar
el módulo inter. Entonces escribe, importar TK enter, TK enter como TK. Entonces usando su nombre de clase, voy a crear
una variable de instancia, y voy a llamarla
raíz DV T. Raíz igual a T TtktLass es una clase y semicorón en
esta línea y base redonda
para cerrar y redondear base Esta línea crea
el principal en raíz. Como sabes para ejecutar
esta aplicación, necesitamos llamar a un evento root. Para eso, voy a
escribir root dot main root. Básicamente, esto
ejecutará la aplicación. Si ejecuto este código
en mi terminal, va a crear una ventana
en blanco. Esta es la ventana en blanco. Si quieres proporcionar un título a esta ventana, sí, puedes. Solo necesitas escribir, déjame mostrarte entre
el vaso Ticket y el menú, necesitas escribir root
el título Mc Inter app. Si configuro este archivo
y ejecuto este código, como pueden ver, ahora este título está asignado a esta app de Inter. Ahora
hablemos de la geometría. Quiero establecer el tamaño de la ventana, posición de
la ventana y el icono de ventana. Para ello, necesitamos
usar la función de geometría. Déjame mostrarte. Voy
a escribir geometría de punto raíz. Aquí voy a definir
el tamaño de nuestra ventana. Dentro de los códigos dobles, quiero definir
el tamaño 800 X 600. Se va a establecer el
tamaño de la ventana. Después de configurar este archivo, si ejecuto
este código en mi terminal, ahora puedes ver, ahora puedes notar esta vez abrió
la ventana mucho más grande. Después de eso, con el
tamaño de esta ventana, voy a definir
la posición de esta ventana donde
va a abrir la ventana. Para eso, después de definir
el tamaño con altura, voy a sumar, voy a sumar con 100. Es para Xxs y para las YxS voy a
sumar con 50 Es para YxS. Después de configurar este archivo, si ejecuto
este código en mi terminal, ahora puedes notar el resultado. A partir de los XXs
proporcionará un hueco de 100 píxeles, y desde el YXS
proporcionará un hueco de 50 píxeles la misma manera, si aumento el valor de YXS si lo hago 500 y este este archivo
y vuelvo a ejecutar este código, ahora puedes notar esta vez abrió la ventana
desde el Esta vez proporciona un espacio
de
500 píxeles desde la parte superior y desde el laboratorio, proporciona 100 píxeles. Es así como podemos
posicionar esta ventana. Podemos definir dónde se
va a abrir en nuestra pantalla. Recuerda, primero,
necesitamos proporcionar W, luego necesitamos proporcionar altura. Después de eso, necesitamos usar el signo de
suma y necesitamos
proporcionar el valor Xofte
y luego el valor de compensación Y Es necesario seguir
esta palabra con altura, X opsita e Y opuesta Ahora veamos cómo
podemos configurar un icono a nuestra aplicación,
nuestra aplicación GI. Para ello, necesitamos usar
icono de la función de mapa de bits.
Déjame mostrarte. Entonces para escribir, root, punto, icono Bitmap, icon bitmap Luego dentro del rebaje redondo necesitamos proporcionar
la ruta del archivo. Dentro del doble
curso, voy a escribir este icono nombre icon.co Recuerda, para el icono,
siempre necesitamos
usar la extensión punto ICO. De lo contrario, no va a funcionar. Así empatar CO en icon.co.
Voy a establecer este archivo. Presiono establecer este archivo, vamos a ejecutar el código en nuestra terminal. Alguien ejecute este
código en mi terminal y como puede ver, ahora
puede ver el icono. Este es el icono que utilicé. Se trata de icono de descarga de archivos. En este tutorial,
aprendemos cómo
podemos establecer una dimensión
a nuestra ventana, cómo podemos abrir nuestra Ventana
en cierta posición y cómo podemos asignar un icono
a nuestra aplicación. En la siguiente parte
de este tutorial, vamos a
hablar de Redimensionamiento de ventanas, límites máximos
mínimos
y modo de pantalla completa. Gracias por ver este video, Estén atentos para el
próximo Tutorial.
6. Redimensionamiento de ventanas, límites mínimos: Hola, chicos.
Encantado de verte de vuelta. Este es el segundo tutorial relatateKmer Como pueden ver, ahora, si ejecuto este código
en mi terminal, se
puede ver la ventana
en esa posición. Ahora bien, si trato de cambiar el
tamaño de la ventana,
sí, es redimensionable sí, es redimensionable Podemos extender su ancho
y extender su altura, pero podemos establecer límite. Déjame mostrarte. Aquí, voy a usar una función
llamada redimensionable Algún tipo. Punto de raíz redimensionable Dentro de las rotondas
voy a hacer modas. Tanto el valor
cae, cae modas. Es para con, y a continuación, voy a pasar
valor falso para altura, fads, y voy
a establecer este archivo Después configuré este archivo, si ejecuto este código
en mi terminal, y esta vez, si intento
cambiar el tamaño de esta ventana, ya no
es redimensionable ya no
es redimensionable porque hacemos tanto
el valor falso, pero si hago uno
de los valores true,
así que voy a hacer que el valor height value Entonces establece este archivo y
otro código en mi terminal. Ahora puedes notar que
podemos extender la altura
de esta ventana. Podemos extender la
altura de esta ventana. Pero si trato de extender
el ancho de esta ventana, no
va a funcionar
porque esta vez hacemos width value false y
height value true. Entonces podemos extender la altura, pero no podemos extender el
ancho de esta ventana. Ahora, hablemos de
la función de tamaño mínimo y tamaño máximo. Entonces voy a
comentar esta línea, y aquí, voy
a usar primero, voy a usar tamaño mínimo, tipo
verano, raíz, tamaño medio
superior, MIN, tamaño mínimo, y aquí, voy a establecer la dimensión. Aquí
lo voy a decir dimensión mínima, 400 por 300 y
voy a establecer este archivo. Después de configurar este archivo,
si ejecuto este código en mi terminal y trato de
reducir el tamaño de la ventana, ahora puedes notar en cierto
punto deja de redimensionar la ventana porque
su tamaño mínimo, usamos 400 y para la
altura, usamos 300. No podemos reducir la altura
y anchura de esta ventana. Entonces así es como podemos establecer el tamaño mínimo de esta ventana. De la misma manera, podemos
establecer el tamaño máximo. Voy a duplicar esta línea y en vez de tamaño mínimo, voy a usar tamaño máximo. Entonces escribe el tamaño máximo máximo, y aquí, voy
a decir dimensión. Por ancho, voy
a tomar 1,200. Y para la altura, aquí
voy a tomar 800. Voy a poner esta pila y voy a ejecutar
este código de nuevo. Ahora bien, si trato de aumentar dentro de la
altura en cierto punto, deja de aumentar la altura
y rueda de esta ventana. Ahora, el ancho se convierte en 1,200 píxeles y la altura
se convierte en 800 píxeles. No podemos ir más allá
porque aquí dijimos
el límite máximo. Entonces así es como podemos establecer el
tamaño máximo y mínimo de esta ventana. Espero que ahora quede claro 40. Ahora, hablemos del voto a pantalla
completa. Ahora antes de aplicar
la pantalla completa, voy a comentar tanto
las líneas, tamaño
máximo y tamaño mínimo porque necesitamos
llenar la condición. Por eso necesitamos
comentar estas líneas. Y además, puedes
comentar sobre geometría, pero no la necesitas para
aplicar la pantalla completa, voy a escribir root,
root, función de atributo, atributos luego dentro de
los versos redondos aquí dentro del curso único, voy a escribir pantalla completa. Pantalla completa. Entonces voy a entonces
voy a hacer realidad
la condición.
Voy a establecer este archivo. Después de configurar este archivo,
si ejecuto este código en mi terminal,
no hay problema. Sí, va a hacer
nuestra ventana a pantalla completa, pero no hay forma de
salir de la pantalla completa. Entonces voy a ejecutar este
código en mi terminal, y después de ejecutar este
código en nuestro terminal, como pueden ver,
crea la pantalla completa. Ahora crea ventana de
pantalla completa, pero no hay forma de
salir de la ventana porque no
establecemos ninguna
condición para eso. De lo contrario,
no
establecemos lo contrario, no creamos ninguna
función para eso. Y aquí uso múltiples pantallas, así que desde mi otra pantalla,
puedo cerrar esta ventana. Entonces desde mi barra de remolcadores, voy a cerrar la ventana Y salir del programa.
Ahora la pregunta es, entonces ¿cómo podemos usar
la pantalla completa? Cómo podemos salir de la pantalla completa. Para eso, necesitamos
crear una función. Entonces voy a
crear una función. Voy a definir una función
y nuestro nombre de función es, y nuestro nombre de función
es salir a pantalla completa. Entonces voy a definir
la función usando DF DF y nuestro
nombre de función es salir a pantalla completa. Entonces dentro de la ronda dice aquí, voy a hacer evento aquí, voy a hacer
evento igual a ninguno. Entonces dentro de la función Exit four
screen, aquí, voy a usar este
método, Good dot attribute. Copia este y
lo voy a poner
aquí y lo voy a
quitar de este lugar. Ahora la pregunta es por qué uso este parámetro opcional en esta función evento
igual a ninguno? Porque Kinter elogia
automáticamente un objeto de evento cuando se presiona
una tecla Cuando alabamos cualquier clave, Kinter piensa que es un evento, así que por defecto, la hacemos ninguna Y ahora necesitamos vincularlo
y llamar a la palabra clave event. Para ese rebaño, voy
a usar el método bind. No te preocupes.
Te explicaré más adelante por qué uso bind. Entonces escribe root, dot, bind method. Enlaza, luego dentro de
las prensas redondas, ella dentro del doble código menor que
mayor que el interior de ella. Aquí voy a teclear scape. Quiero decir cuando alabo la tecla scape, entonces quiero salir a pantalla completa, algún tipo salir función de
pantalla completa, llamo a salir función de
pantalla completa. Voy a establecer este archivo. Antes de configurar este archivo, déjame corregir
algo aquí, tenemos que salir de la pantalla completa. Tenemos que hacerlo
falso, no verdadero, falso. Vas a salir de
la pantalla completa, y luego necesitamos activar la pantalla completa usando los
mismos métodos de atributo. Copo esta línea de atributos de punto
raíz, y lo voy a pegar aquí. Y esta vez,
voy a hacerlo realidad. Entonces primero, va a
activar el modo de pantalla completa. Entonces cada vez que alabo a
Scapekey en mi teclado, va a salir de
la Entonces para configurar este archivo, si ejecuto este código
en mi terminal, como pueden ver, primero,
activa el modo de pantalla completa. Y cada vez que alabo a
Scapekey en mi teclado, como se puede ver
sale de la pantalla Entonces así es como podemos abrir nuestra ventana en
diferentes geometrías. Espero que ahora te
quede claro cómo funciona la
geometría en Kinter
en el siguiente tutorial, vamos a trabajar en magos
básicos de Ginter Así que gracias por
ver este video, estad atentos para un
próximo tutorial.
7. Widget de etiqueta Tkinter: Hola, chicos. Es bueno
verte de vuelta. Una vez más, estoy de vuelta con otro tutorial relacionado kinter. Y hoy en este tutorial, vamos a
hablar de asistente de etiquetas. Asistente de etiquetas utilizado para mostrar texto o imágenes en
una aplicación GUI. Es uno de los hechiceros
más básicos. Y si hablo de
su característica clave, entonces se utiliza para mostrar texto e imágenes
estáticas. Personaliza la apariencia usando
propiedades como fuente, color, tamaño, etcétera Puede encuestar marcador de posición o proporcionar comentarios
en una aplicación Y si hablamos de
su sintaxis, primero, cuando se escribe label method, luego dentro de las runbs necesitamos
proporcionar la ventana principal de
lo contrario frame name Entonces podemos usar
estas propiedades. De lo contrario, podemos usar
estos parámetros, texto y otras opciones. Y tenemos varias
opciones de configuración como fuente, fondo,
primer plano, etcétera. Ahora
hablemos de sus opciones. Tenemos que decir siete
opción en asistente de Nivel. Texto, imagen, fuente, fondo, para relleno X, relleno Y. En nuestra primera opción, se
disexta en la etiqueta,
y usando la opción de imagen, es disparimage en lugar Entonces tenemos fuente. Podemos
definir el estilo de fuente usándolo. Entonces tenemos color de fondo. Entonces tenemos color de primer plano. Color de primer plano
significa color de texto. Entonces tenemos relleno. Se proporciona relleno horizontal alrededor del contenido de la etiqueta. Entonces tenemos relleno Y. Es proporcionar relleno vertical
alrededor del contenido de la etiqueta. Entonces, sin perder el tiempo, comencemos la práctica y
veamos cómo podemos usar esto es. Como pueden ver, estamos en mi editor de código
visual studio. Al principio, voy a
introducir el, el módulo TK. Tipo Hemo, Importación, Tinte como TK. De lo contrario, puedes importar
todo el programa usando start. Y si quieres importar todo el programa del módulo
TK para eso, necesitas empatar desde
Kinkerimport, star Se va a importar
todo el método, todas las clases
de este módulo. Voy a comentar
la línea anterior. Entonces necesitamos crear
la ventana principal. Para crear primero la ventana principal, voy a declarar
una variable root, root igual a esta vez, voy a escribir decaimiento. Se va a crear
la ventana principal. A continuación, voy a asignar
un título a esta ventana. Para eso, voy a
escribir root dot title. Después dentro de las prensas redondas, tipo
hemo, ejemplo de etiqueta Kiner A continuación, voy a definir
la geometría de esta ventana. Voy a escribir root, geometría dentro de los roundersses, dentro del doble curso, voy a escribir 300 X 200 y además
necesitas ejecutar el loop principal para ejecutar la
aplicación Él escribe root main
loop, main loops uno. Si ejecuto este código
en mi terminal, como pueden ver, aquí
crea una ventana. Y ahora en esta ventana, voy a poner un texto. Para eso, vamos
a usar asistente de nivel. Alguien que elimine esta ventana, y aquí voy
a escribir una variable, y nuestro varim es de nivel Nivel igual a aquí, voy a teclear nivel asistente. Etiquetar uno. Después dentro de las
prensas redondas, al principio, necesitamos proporcionar el
windowname como nombre de ventana, voy a pasar root Entonces tenemos que
proporcionar el texto. El texto que quiero
pasar en esta etiqueta. Necesitamos escribir este
atributo name text. Texto igual a aquí, voy a pasar hola Tinter Entonces voy a usar la fuente. Para fuente, cuándo escribir, fuente, igual a dentro la base redonda, dentro
del doble curso, primero, necesitamos definir qué tipo de
letra vamos a usar, y voy a
usar fuente aérea. Entonces necesitamos
definir el tamaño de la fuente. Como tamaño de fuente,
voy a definir 16. Atrocma siguiente, voy
a pasar por color largo. Para el color pulmonar,
voy a usar G, G igual y aquí
voy a usar color blanco. Blanco. Entonces voy a
usar color de fondo, BG, BG, igual al interior de
los códigos dobles, tipo
hemo, color azul Voy a establecer este archivo. Trastornar este archivo, ejecutar el código. Si ejecuto este código, como
pueden ver, no muestra nada. No muestro el texto porque no
empacamos esta etiqueta. Ahora tenemos que empacar esta etiqueta. Aquí necesitamos usar un
método llamar etiqueta punto PAC. Entonces dentro del
redondo dice: Por ahora, no
voy a pasar nada, y voy a configurar este archivo, y voy a ejecutar este código Después de ejecutar este código,
ahora puedes ver el texto. Aquí puedes notar que
nuestro tamaño de fuente es 16 píxeles y nuestro
estilo de fuente es aéreo. Y como
color de fondo, decimos color azul, y como color forgon, aquí decimos color blanco Y ahora quiero
agregar poco relleno desde la dirección XSS,
también dirección YxS Superca Hendotype Padg
padix igual a TAM. Coma. Como voy
a asignar relleno Y. Pad, Y igual a cinco. Si ejecutamos este código
en mi terminal, ahora lo puedes ver en padding. Se a diez píxeles
de relleno de la dirección Xs y cinco píxeles
de relleno de la dirección Y xs. Además, puedes asignar relleno
cuando pongas esta etiqueta. Algo así, déjame
mostrarte pad Y.
voy a agregar pad Y, y aquí voy a agregar 20. Y voy a configurar este
archivo y volver a ejecutar este código. Alrededor de este código, se
puede ver el resultado. Ahora agrega relleno alrededor de la etiqueta, no
dentro de la etiqueta. la misma manera, puedes agregar pada cuando empaques esta etiqueta Ahora, déjame explicarte
el código línea por línea. Entonces primero, puedes ver que creamos una variable, root igual a TK. Crea la ventana principal de
la aplicación. Después asignamos un título. Básicamente, se va a
establecer un título de la ventana. Después asignamos geometría. Especifico el tamaño de la ventana. Después de eso, vamos a
saltar a la configuración de la etiqueta. Al principio, pasamos
en qué ventana, quiero crear la espuma, que es ruta entonces
usamos propiedad de texto Se va a especificar el texto que quiero mostrar
en esta ventana. Entonces usamos C,
va a establecer la fuente, estilo de
fuente y tamaño de fuente. Entonces tenemos para tierra. Se va a establecer
el color del texto. Entonces tenemos los
antecedentes. Voy a establecer el color de fondo. Entonces tenemos padx y Pad y. padex va a agregar
relleno en la dirección, y pad y va a agregar
relleno en dirección YxS Después de eso, empacamos la etiqueta usando el método label
dot pack. Se va a colocar la
etiqueta en la ventana. Y de lo contrario, si
creas la etiqueta y no colocas la
etiqueta en la ventana, no
va a
mostrar la etiqueta. Y también agregamos poco
relleno desde la dirección YxS. Ahora veamos cómo podemos mostrar una imagen
usando el asistente de etiquetas. Como puedes ver en mi directorio de trabajo
actual, tenemos a dos imagen, una imagen GPG y
otra es imagen PNG Y si abro esta imagen PNG, es icono, y su
resolución es 512 por 512. Entonces voy a usar esta
imagen, esta imagen PNG. Entonces aquí, voy a
ampliar el tamaño de la geometría. Aquí, voy a
teclear 700 por 700. Voy a establecer
este archivo. Ahora voy a mostrar esta
imagen en esta ventana raíz. Para eso, necesitamos
usar un método, y nuestro nombre de método es
photo Image method. Al principio, voy a declarar una variable y nuestro nombre de
variable es image. Imagen, Imagen igual a, necesitamos usar un método
llamado imagen fotográfica. Así que escribe foto imagen. Es el método es
el método de Kinter. Después dentro de la carrera brcs. Tenemos que proporcionar el
archivo, la ruta del archivo. ¿Qué imagen vamos a utilizar? Voy a usar
atributo llamado archivo. Archivo igual al interior
del Rundss como
puedes ver en mi directorio de
trabajo actual, teníamos esta imagen Entonces quiero copiar
este nombre de imagen, y aquí voy a
paginar el nombre de la imagen Png underscoimage punto PNG Básicamente en esta variable, cargamos esta imagen usando el método
photo image. Y ahora necesitamos crear
un nivel usando esta imagen. Para eso, voy a
declarar otra variable, label, y esta
es el nivel dos. Nivel dos igual a dos. Necesitamos usar el método
level level. Luego dentro del proceso de ejecución, al principio, necesitamos proporcionar el nombre de la ventana que es root. Entonces tenemos que
proporcionar la imagen. Entonces escribe imagen igual a
nuestra variable de imagen, esta, para rectificar
la variable, voy a cambiar
los nombres de las variables Aquí aquí voy
a añadir subrayado. Imagen underscoe también en
pase underscoe aquí. Después de eso, necesitamos
empacar esta etiqueta. Voy a duplicar esta línea y aquí voy a añadir dos. Este es el Nivel dos.
Voy a establecer este archivo. Ahora vamos a ejecutar el código y
ver qué va a cráter. Después de ejecutar este
código en mi terminal, como pueden ver, se muestra
esta imagen usando el asistente de nivel. Y también agrega
relleno de 20 píxeles en dirección YXS. Y una cosa que debes
recordar, B default, B Default Ginter soportan formato
PNG, formato GIF Pero no soporta imágenes en
formato JPG. Déjame mostrarte. Voy a eliminar
esta terminal, y voy a
reemplazar la ruta del archivo. Duplico esta línea y
comento la anterior. T tiempo voy
a utilizar esta imagen, esta imagen de cat dot JPG. Aquí voy a copiar el nombre del
archivo y lo voy a poner aquí y
también voy a pasar la extensión dot JPG, y voy a configurar este archivo. Si trato de ejecutar este código en mi terminal, déjame mostrarte. Voy a hacer a través de un errod
porque como te dije, no
soportamos imágenes JPG Para soportar otras
imágenes de formato como el formato JPG, necesario
utilizar otro módulo, que es el módulo Pillow. Déjame mostrarte
cómo podemos usarlo. Al principio, necesitas descargar
el módulo en tu sistema. Voy a abrir el cobertizo de
Window Power. Como pueden ver, estamos
en mi Ventana Powershion. Y para descargar
el módulo Pillow, solo necesitas escribir, peep, instalar Pillow, PIL Ow, y luego necesitas golpear Enter Después de golpear Enter, como
puedes ver una impresión, requisito ya
satisfecho porque ya
descargo este paquete, pero necesitas completar
el proceso de descarga. Después de eso, puedes usar
este nodu Pillow es una biblioteca de imágenes Python
de este módulo Pillow, necesitamos importar el método
total de dos, tictac de
imagen e imagen
como una forma corta, almohada conocida como Aquí voy a
escribir de Píldora. Yo voy a hacerlo.
Voy a importar imagen. Además, voy a
importar tictac de imagen. Éste. Ahora
voy a comentar esta línea porque en ese proceso no podemos
importar imagen GPG Aquí, voy a escribir
un solo comando lend y voy a
escribir para imágenes JPG. Al principio, voy
a crear una variable llamada image image undersco Voy a usar
la misma variable. De lo contrario, voy
a configurarlo imagen JPG. Imagen JPG, esta es
nuestra variable e igual a voy
a usar un método. Necesitamos usar un método
del módulo Pillow, escribir image dot y nuestro nombre de
método es abierto. Y dentro de las gramíneas redondas, dentro de los códigos dobles, necesitamos pasar la ruta del archivo Y como pueden ver,
vamos a pasar esta ruta de archivo,
esta imagen cat dot JBIG Entonces aquí se puede ver, utilizamos el método, imagen de foto. Es de Tintermdule, pero esta vez necesitamos usar imagen
fotográfica del Aquí, voy a escribir foto. Igual a imagen imagen de foto de punto. Después dentro de las rondas y dentro de las rondas
voy a pasar la ruta del archivo de
imagen, que es Image underscoe Copio el nombre de la variable y lo
voy a pasar aquí. Después de eso, voy a mostrar
esta foto en este nivel. Entonces Hemo escriba foto, y voy a configurar este archivo Después de configurar este archivo, si ejecuto
este código en mi terminal, ahora puedes verlo
mostrar la imagen GPG Ahora bien, si quieres cambiar el tamaño de
esta imagen, sí, puedes. Déjame mostrarte cómo
puedes redimensionarlo. Para ello, se puede utilizar el
método de redimensionamiento. Déjame mostrarte cómo. Voy a propina imagen, subrayado JPG, igual a
imagen, subrayado Aquí voy a usar el método
resize para cambiar el tamaño. Siguiente dentro de los errores, tenemos que asignar la dimensión, y quiero
hacerla 300 por 300 Después de eso, hasta establecer la
dimensión de esta imagen. Si hago este código
en mi terminal, como pueden ver, cambia el
tamaño de la imagen Y además, si quieres rotar
esta imagen, sí, puedes. Para eso, voy a
duplicar esta línea y aquí, voy a escribir UnderscoeGPG
dot Girar. El interior de las
rondas hemo tipo 45 Si configuro este archivo y ejecuto
este código en mi terminal, como pueden ver, gira
la imagen a 45 grados. Así es como podemos usar el módulo
Pillow con Kinter. Nos va a permitir mostrar imágenes
JPG y por defecto, Kinter solo admite imágenes
PNG y GIF Es necesario que recuerdes
eso. Esto es para este tutorial
en el siguiente tutorial, vamos a
hablar de otra visita. Vamos a
hablar de visita marco. Gracias por ver este video, Estadio por nuestro próximo tutorial.
8. Widget de marco Tkinter: Hola, chicos, es bueno volver
a verles. Una vez más, estoy de vuelta
con otro tutorial relacionado con KINREtay
en este tutorial, vamos a
aprender asistente de marco En nuestro tutorial anterior, aprenderemos sobre el
asistente de nivel y en este tutorial, vamos a aprender
sobre el asistente de marcos. Un marco en Kinter es
un asistente de contenedor, utilizado para agrupar y
organizar otro asistente Actúa como una resina rectangular en la pantalla donde
puedes colocar otro asistente, como botones, etiquetas
y archivos de texto. Los marcos son especialmente útiles
para crear diseños complejos dividiendo la ventana
en secciones manejables Si hablamos de
característica clave del marco, podemos usarlo como contenedor. Podemos usarlo para estilizar, de
lo contrario, crianza de los hijos. Los marcos se utilizan principalmente como contenedores para organizar jerarquías
establecidas También, podemos usarlo para sind. Puede personalizar
el aspecto del marco usando propiedades como el color de
fondo, ancho del
borde y el stype en relieve Y también podemos
usarlo para parente. Un marco puede actuar como
padre de otra visita, lo que le permite seguir fotogramas
para diseños complejos. Si hablo de sus
atributos comunes como fondo, se utiliza para el color
de fondo del marco con altura. Utilizándolo, podemos establecer la
dimensión de este marco. También, podemos establecer alivio. Especifico el estilo de borde, como plano, elevado,
hundido, manoseado, Entonces tenemos otro atributo
llamado ancho de borde. Dice el ancho del borde. Entonces comencemos la práctica y veamos cómo podemos aplicar
estos atributos. Entonces como pueden ver, estamos en mi editor de código de estudio de resultados. Al principio, voy
a importar nuestro módulo. Entonces voy a escribir
desde inter pK Enter. Quiero importar, importar. Quiero ingresar
todos los programas, así que voy a importar estrella. Entonces necesitamos crear la ventana principal
usando el objeto TK. Entonces escriba, raíz igual a TK. Y también, ya sabes,
necesitamos ejecutar el bucle de eventos Tinker, el
bucle principal Para ese tipo de héroe, root, dot mean loop. Entonces al principio, voy
a establecer la geometría. Geometría de punto de raíz. Dentro del latón redondo, dentro de los códigos dobles aquí, voy a asignar 700 por
700 g 300 con este 700
y la altura es de 300 píxeles. Además, si quieres asignar un título a esta
ventana, sí, puedes. Así que vamos a asignar un título. Entonces aquí voy a
escribir, root dot title. Y dentro de los vestidos redondos, dentro de los códigos dobles, voy a escribir marco ejemplo. Ahora, vamos a ejecutar el código
y ver qué escribió. Entonces como puedes ver, crea una ventana, nombre, ejemplo de marco. Y aquí dijimos la dimensión, 700 por 300 píxeles. Y ahora voy a
crear el marco principal. Para eso, voy a declarar
una variable llamada frame, frame igual a aquí necesitamos usar una
función llamada frame. Dentro del
latón redondo, al principio, necesitamos pasar la fuente
en la que ventana quiero mostrar el marco
que es root. Esta es la ventana raíz, entonces voy a asignar
mojado a este marco. Entonces tecleamos nosotros, dobladillo para
asignar 200 píxeles. Entonces voy a
asignar altura, altura. También voy a
asignar 200 píxeles. Entonces voy a asignar
frontera con frontera con, y aquí voy a
asignar frontera con fib Como voy a usar
otro atributo. Aquí quiero
aplicar el estilo de borde. Para aplicar el estilo de borde, necesitamos usar la propiedad de alivio. Alivio. Alivio igual a agrupado. Por ahora, voy a
aplicar el estilo de borde a tientas. Entonces como sabes, ter
crear el marco, también necesitas empacar este marco. Para eso, voy a atar frame dot frame dot dot PAC mtHodpac dentro de las rotondas si
quieres aplicar algo de
pading Supongamos que quiero aplicar
pad en dirección Xs, pad, X, pad x, diez píxeles. Entonces también, voy
a aplicar pad Y, pad, Y, diez pixel. Y voy a poner este archivo. Molestar este archivo si ejecuto
este código en mi terminal, aquí puedes ver el resultado. Aquí puedes ver, este es el marco que creamos
en esta ventana. Y si quieres aplicar color de
fondo para eso, necesitas escribir BG. Entonces aquí voy a
escribir B, G, fondo. Para el color de fondo,
quiero aplicar color gris. Entonces dentro del código doble, voy a escribir gris, y voy a configurar
este archivo y volver ejecutar este código en mi terminal. Ahora puedes ver el resultado. Este es el marco que creamos. Ahora agreguemos algo de
texto en este marco. Sí, puedes agregar texto en
este marco usando etiqueta. Déjame mostrarte. Entonces aquí mono escribo un
nombre de variable para la etiqueta. Su tipo L, L igual a etiqueta. Etiqueta dentro de las
rotondas primero, necesitamos proporcionar el marco en el que marco quiero
mostrar esta etiqueta Entonces nuestro nombre de marco es y nuestro
nombre de variable de marco es frame. AVTypeFrame. Entonces tenemos que pasar el texto. ¿Qué texto quiero
mostrar en esta etiqueta? Por lo tanto, escriba propiedad de texto. Texto igual al interior
de los códigos dobles. Voy a escribir hola palabra. Y si quieres
asignar color encontrado, supongamos como G, y quiero asignar
para redondo color blanco. Después de crear la etiqueta, también, es necesario
empacar esta etiqueta. Para eso, haz el tipo
dot pack Math, empaca. Y si quieres asignar
panning, sí, puedes. Entonces por ahora, no
voy a asignar ningún padding y voy a configurar este archivo y mostrar esto y ejecutar este código en mi terminal. A ejecutar este código en mi terminal, como pueden ver, esto
es lo que crea. Ahora tal vez te
preguntes qué está pasando aquí. Como puedes ver, colocó el texto dentro de este
marco con éxito, pero no aplica
los atributos que aplicamos en nuestro marco, como wid height, color de
fondo, etcétera Pero aplica el estilo boda porque si usas
nivel dentro del marco, entonces necesitas aplicar estos atributos en
este atributo de nivel. Déjame mostrarte. Entonces por ahora, voy a revocar ancho y alto de
fondo No lo necesito. Voy a aplicar
color de fondo a esta etiqueta, BG. Antecedentes. Para fondo, voy a usar color gris, y
voy a satisfacer. Si ejecuto este código
en mi terminal, ahora puedes verlo aplicar el color de fondo
a esta etiqueta. Entonces si quieres asignar
relleno, sí, puedes. Y ahora decido que quiero empacar este nivel de labio lateral
de esta ventana. Para eso, aquí podemos
definir el lado de este marco cuando empacamos el
marco. Déjame mostrarte. Hemotipo lado, lado igual
a y Hemotipo lept. Quiero alinear este marco en el lado let de esta ventana. Si configuro este archivo
y vuelvo a ejecutar este código, puedes ver el resultado Como puedes ver esta
vez alineó el marco del lado izquierdo
de esta ventana. Ahora quiero llenar este
cuadro en dirección Xs. De esta manera a esta
manera, déjame mostrarte cómo. Aquí voy a usar una
propiedad llamada llenar. siento igual a dentro de
los códigos dobles, voy a usar Y. quiero llenarlo
en dirección YxS Ahora bien, si cruzo esta terminal
y vuelvo a ejecutar este código, pero antes de ejecutar este código,
necesitamos pasar coma hair
y sub este archivo y ejecutar
este código en mi necesitamos pasar coma hair y sub este archivo y ejecutar
este código en Ahora puedes ver que llenó
el cuadro en dirección YxS. Si quito el relleno
de toda la dirección, déjame mostrarte si quito los rellenos y luego configuro este archivo nuevamente
y ejecuto este código, ahora puedes verlo quitar el relleno
de cada dirección Si trato de aumentar la
altura de este marco, déjame mostrarte, como puedes ver, cuando aumente la altura,
también aumenta la altura del marco porque Hay campo este
marco en la dicción YX Básicamente, Harry
crea una sware de NO ventana usando marco Wist Y dentro de este asistente de marco, puedes pasar botón
de etcétera Si tienes conocimientos sobre TML, entonces podemos comparar este
marco con un elemento profundo Básicamente, se trata de
actuar como un contenedor. Y recuerda, aquí puedes aplicar diferentes tipos
de estilo de borde, como Grobe, hundido,
plano, elevado, y muchos Y si quieres mover este
marco en el lado derecho, justo en el lado Ty igual a
derecho cuando etiquetas el marco. Este es el
video de introducción del asistente de marco, cómo podemos usarlo y
cómo podemos aplicarlo. En el siguiente tutorial,
vamos a hablar sobre el asistente de botones y cómo
podemos usar el botón
Asistente con marco. Así que gracias por
ver este video, estén atentos para nuestro
próximo tutorial.
9. Widget del botón Tkinter: Oigan, chicos. Me alegro de verte de vuelta. Una vez más, estoy de vuelta con un
nuevo tutorial relacionado con Kiner. Y hoy en este tutorial, vamos a
aprender asistente de botones. En TNCR, se
utiliza un asistente de botón para crear un
botón en el que el usuario puede hacer clic para activar
una acción
o evento específico en la aplicación GI El asistente de botones vino con
varias opciones configurables, lo que le permite personalizar
su apariencia y comportamiento. En una sola oración,
podemos desencadenar cualquier acción o evento
usando botón. Si se habla de expansión del
asistente de botones, lo contrario propiedades,
viene con propiedad de texto, propiedad comando dentro de la propiedad de
altura, propiedad fondo de
primer plano, propiedad fuente y propiedad de
estado Usando la propiedad del texto,
podemos mostrar la etiqueta en el botón y usando la propiedad de
comando, una función o método a
ejecutar cuando se hace clic en el
botón Usando dentro de la altura,
podemos definir el tamaño
del botón. Usando forgon y fondo, podemos establecer el color olvidado y de
fondo del botón Si quieres definir
el texto del botón, en ese caso, necesitas
usar la propiedad de fuente. Entonces tenemos propiedad estatal. Podemos definir el estado
del botón. Podría ser normal, de
lo contrario desactivar, y normal es el modo predeterminado. Ahora, comencemos la práctica y veamos cómo podemos
usar el botón Wizard. Entonces como pueden ver, estamos en mi
editor de código Wizard Studio, y al principio, voy a importar nuestro módulo
TK, algún tipo,
importar, TK incurrir como TK De lo contrario, si
quieres importar todo el pom, entonces puedes importar start. Ahora, necesitamos
definir una función, una función a llamar
cuando se patea el botón. Para eso, voy a escribir DV y nuestro
nombre de función es button kick. De lo contrario, botón semana.
Botón de subrayado Dentro de las RoundResf ahora, no
voy a
pasar ningún parámetro, luego dentro de la función, voy a imprimir un nivel Voy a mostrar un nivel. Entonces aquí voy a
escribir level dot config. Dentro del rondress
voy a pasar el texto. Texto igual al clic de botón. Ahora puedes ver que está
mostrando advertencia porque no
definimos esta variable. No te preocupes. Voy a definir
la letra variable. Luego después de crear la función, necesitamos crear
la ventana principal. Así que para declarar la raíz igual
a la función TK TK. Se va a
crear un objeto TK. Entonces voy a
definir un título. Entonces para escribir root GOT title, dentro de los vestidos redondos, dentro de los dobles
goodes voy a escribir ejemplo de botón Tinker A continuación, voy a definir
la geometría de esta ventana. Para eso, voy a
escribir root dot Geometry. Geometría de puntos dentro
de las llaves redondas. Aquí voy a
definir 300 por X 200. Entonces necesitamos
definir el nivel. Voy a declarar
la variable de nivel. Nivel igual a etiqueta de punto T. Entonces dentro del proceso redondo, quiero des este nivel
en nuestras ventanas raíz. Voy a escribir el nombre de la
ventana root. Entonces tenemos que pasar el texto. Texto igual a aquí
voy a escribir, presione el botón ser entonces
voy a declarar la fuente. Fontig dos dentro
de las prensas redondas, quiero usar fuente aérea Además, tenemos que
declarar el tamaño de fuente, así que voy a pasar 14 píxeles. Entonces, para crear esta etiqueta
también en empacar esta etiqueta. Para eso, voy a escribir
label dot pac method, pack. También quiero definir algo de
relleno en dirección YxS. Voy a escribir pad, Y,
diez píxeles, de lo contrario,
diez puntos. Para ejecutar la aplicación, voy a definir
el bucle principal. Voy a escribir
root dot main loop. Y antes de configurar
este archivo y ejecutar este código en mi terminal,
como pueden ver, aquí, necesitamos escribir TK K
en letra minúscula, esta. Y voy a
volver a configurar este archivo y ejecutar este
código en mi terminal. Después de ejecutar este código
en mi terminal, se
puede ver la ventana. Presiona el botón de abajo. Aquí aún no creamos
el botón. Ahora voy a crear
el botón debajo del texto. Para eso, voy
a usar el asistente de botones. Al principio, voy a definir
una variable llamada button,
button equal to PK dart
button, button Nub Después dentro de las
rotondas, al principio, necesitamos definir la ventana en la que ventana
quiero mostrar el botón En nuestro caso, root. Entonces necesitamos definir el
texto, el texto del botón. Suo tipo texto, igual al
interior del doble des, Imurutype click M. Click Me. A continuación, necesitamos definir
command, la propiedad command. Comando igual a, aquí
necesitamos llamar a la función. De lo contrario el evento.
Como puedes ver, ya
creamos un evento y nombre de
nuestro evento está
en el botón click. Hemotipo en patada de
botón de subrayado. Recuerda, cuando llamas a este
método de lo contrario función, no
necesitas proporcionar
llaves redondas, necesitas llamar al nombre de
la función Después de la coma,
puede definir la fuente. Fuente tipo hemo. Dentro de la cotización,
voy a usar la fuente Aerial. Aéreo. Afra coma, quiero definir el tamaño de fuente,
así que voy a pasar 12 Entonces voy a decir el color de
fondo, BG. Para el color de fondo,
voy a usar azul claro. Aquí definimos el color
de fondo. Después de eso, voy a
definir el forron color AG. Para color redondo, igual a, y quiero asignar para el color de la
habitación ese color. Y como sabes, después de
crear el botón, también, necesitas empacarlo
usando el método pack. Entonces aquí voy a
escribir button dot, pack. Y si quieres agregar algo de
relleno, sí, puedes. Entonces aquí voy a escribir pad Y. quiero proporcionar
relleno en dirección YX, y aquí voy
a pasar 20 píxeles Voy a establecer este archivo. Ahora podrías tener
duda, ¿qué va a hacer
básicamente nuestro
botón? Básicamente, cuando
haga clic en este botón, va a reemplazar
este texto de etiqueta. Se va a presionar
el botón debajo de él, este botón de texto hizo clic porque aquí configuré
esta etiqueta en esta función Ahora, guardemos el archivo y ejecutemos este código
en nuestra terminal. Después de ejecutar este código
en nuestra terminal, como pueden ver en nuestra ventana, tenemos el botón, y nuestro nombre de
botón es click me. Entonces si hago clic en este botón, déjame mostrarte, como puedes ver, reemplazó el texto. Yo reemplazo con
clic de botón porque
activó la función. Se activó en la función de
clic de botón, y nuestra función
configuró este texto. A continuación, te voy a
mostrar ¿cómo
podemos usar este asistente de botones
con asistente de marco? ¿Cómo podemos insertar el
botón dentro del marco? Para eso, voy a crear
un marco después de esa etiqueta. Y nuestro nombre de marco es marco de subrayado de
marco de botón, igual al método de
marco de punto TK, marco Luego dentro del
latón redondo, al principio, necesitamos proporcionar el windowam en que ventana quiero
mostrar este marco, que es root, y luego
hay que establecer el color de
fondo, BG Fondo igual a, y
quiero decir color gris claro. Gris claro. A continuación, voy a establecer el
estilo de borde sm type relief. Alivio igual a TK, y voy a usar
planteado éste. A Voy a poner
botella con borde con, y voy a ponerla también. Entonces también, necesitamos empacar
este tipo de marco inferior botón, marco, punto, método de empaque. Entonces dentro del sujetador redondo dice, al principio, voy
a proporcionar relleno Y,
pad, Y, Padi igual a 20,
coma, luego
voy a poner Padix igual a 20. A continuación, voy a
llenarlo y a continuación voy
a llenar éste. Sentirse igual a hemos Tk punto ambos. El siguiente inmueble que
voy a usar expandir, expandir, igual a verdadero. Si ejecuto este código
en mi terminal, como pueden ver, él creará el marco y
necesitamos mover este botón
dentro de este marco. Para eso en nuestro asistente de botones, necesitamos pasar el nombre del marco del
botón. Esta vez, no
voy a pasar de raíz. Voy a reemplazar root
con este marco de botón. Entonces copio el nombre muy bien, y lo voy a pegar aquí y voy
a poner este archivo. Si configuro este archivo y
está codificando mi terminal, como pueden ver, esta vez, agrega el botón
dentro de este marco. Y si hago clic en este botón, como pueden ver,
todavía está funcionado. Entonces así es como podemos usar el botón Asistente con asistente de marco. Entonces esto es todo para este tutorial. Gracias por ver este video. Estén atentos para nuestro
próximo tutorial.
10. Widget de entrada a Tkinter: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con el asistente de Kinter Hoy en este
tutorial, vamos
a aprender asistente de entrada. Es uno de los magos más
importantes de Kinter. El asistente de entrada en
Kinter se utiliza para
aceptar la entrada de texto de una sola línea del usuario Se utiliza comúnmente
para introducir nombres, contraseña, correos electrónicos,
número, etcétera Si hablo de su sintaxis, necesitas escribir la entrada del nombre del
método, entonces necesitas
pasar el muster Quiero decir el nombre del continente
padre donde quieres poner la entrada y luego
necesitas pasar la opción. Opciones para configurar parámetros para
personalizar la visita, como fuente, hierba,
fondo, primer plano,
justificar arrecife etcétera. Si hablo de opciones de visita de
entrada, puedes usar fondo,
primer plano, fuente,
hierba, show, se usa
para enmascarar caracteres, como para contraseña,
usamos signo de estrella Luego toma variable
se asocia con la variable inter string
para establecer y valores de puerta. Entonces tenemos estados. Él se puede pasar normal
divisible o al azar Entonces había justificado
para propósito de alineación, realmente para
estilo de borde, y por fin, tenemos V para controlar el
grosor del borde. Comencemos la
práctica y veamos cómo podemos usar el asistente de entrada. Entonces como puedes ver, on minimiza
el editor de código de estudio. Primero, importo
el módulo kinder. Entonces, creo la clase T. Después creo la ventana principal. Después de eso, le asigno un
título, ejemplo de asistente de entrada. Después estableces la geometría de Ventana
con 300 y altura 200. Después de eso, ejecutamos
el bucle del evento principal. Siempre que pasemos algún dato en nuestro campo de entrada,
necesitamos guardarlo. Para eso, necesitamos
una variable de cadena. Aquí voy a declarar una variable llamada
nombre subrayado Y. Nombre igual a, voy a definir una
variable de cadena. String v Eso es todo. Básicamente, la variable de
cadena es una clase de variable kinker Se utiliza para vincular dinámicamente el asistente de entrada
con una variable. Ahora, vamos a crear un asistente de
entrada en Owindo. Voy a escribir entrada. Entrada igual a aquí, voy a llamar a la
entrada es una entrada de clase. Entonces dentro del
redondo dice, primero, tenemos que definir, quiero
decir el contenedor padre En nuestro caso, es raíz. Después de eso, voy a usar la opción llamada variable de texto. Entonces escribe variable de
texto, variable de texto igual a aquí
voy a asignar con esta variable llamada
nombre o variable de nombre. Después una coma, en la siguiente línea, voy a definir fuente Fuente aquí dentro del bajo redondo, voy a asignar fuente aérea y también voy a
definir el tamaño de fuente, así que voy a pasar 40. Entonces después de la coma,
tenemos que asignar con. Voy a asignar
con su pase 25. Entonces voy a asignar
para color redondo AG. Para ronda aquí voy
a usar el color azul. Después de eso, voy a
asignar color de fondo, BG. Para BG, voy a asignar amarillo
claro amarillo claro. Después de eso, voy
a asignar justificar porque necesito
alinearla y voy a hacerla centrada. Entonces una coma, ella, necesitamos definir el
estilo de la frontera Entonces escriba relieve. Alivio igual al pelo, voy a usar grove Value. Dentro del doble curso
voy a pasar crecer. Y a continuación, necesitamos definir
el grosor del borde, algún tipo B, D, grosor de
borde igual a dos. Y voy a poner este archivo. A continuación, después de niño
el asistente de entrada, necesitamos empacar
el asistente de entrada. Entonces escriba método de
paquete de puntos de entrada, empaque. Dentro de las rotondas aquí, voy a usar pad
Y wit pad pad Y, y voy a pasar 20 Básicamente empaca
el asistente de entrada y le agrega
relleno vertical a su alrededor, y agrego 20 bits de relleno. Ahora después de configurar este archivo, si ejecuto este código
en mi terminal, se
puede ver el
asistente de entrada en esta ventana. Este es el asistente de entrada. Ahora aquí, puedes pasar cualquier texto como nombre,
contraseña, lo que sea. Ahora crea el asistente de entrada, necesitamos crear
una función que pueda leer la entrada de entrada. Además, es necesario
crear un botón. Y cada vez que
presionas el botón, eso va a la entrada. Así que vamos a crear la función que va a leer la entrada. Así que empaca, tipo Sol, Dave, y nuestro
nombre de función es display. Mostrar entrada de guion bajo. Esta es la entrada y
dentro de los vestidos redondos, no
voy a
pasar ningún argumento, y aquí voy a imprimir,
imprimir Es el
mottter de Doble curso ingresó texto Después de eso, necesitamos obtener el valor de la variable
name, algún tipo name donde
dot Gate Maththub Primero ingresamos cualquier texto en este campo de entrada
y va a almacenar en esta variable name ware y de este namea variable, vamos a
extraer los datos usando esta función y aquí usamos el método gate
para extraer los datos Ahora, vamos a crear un botón
que vaya a mostrar la entrada. Para eso, aquí para escribir
botón dentro de las rondas, primero voy a proporcionar
el master, que es root. Después de eso, atributo de texto, y voy a escribir, voy a voy
a configurarlo, mostrar entrada. Entonces voy a
pasar la orden. Comando, va a cada
vez que presione el botón, va a comandar
esta función, display input, display input, y además necesitamos empacarlo en type dot pack
voy a asignar poco pading en YX
direction pad, Y t. voy a configurar este archivo Entonces cada vez que haga clic en este botón, va a llamar a la
función de entrada de pantalla y esta función mostrará
todo el texto en la consola. Así que establece este archivo. Si ejecuto este código
en mi terminal, tenemos el
campo de entrada, y aquí, voy a escribir mi nombre, y voy a hacer clic en
este botón, Mostrar entrada. Si presiono este botón, ahora puedes ver en mi
Consola imprimir mi nombre. Si quieres usar este campo de
entrada para contraseña, en ese caso, necesitas
ocultar estos caracteres. Para eso, es necesario
usar otro parámetro, lo contrario, otra opción
llamada show. Déjame mostrarte. Aquí, después de eso,
voy a usar otro
parámetro llamado Show. Así que igual a dentro
del doble curso, voy a usar personaje
estrella, estrella, y aquí voy a pasar coma voy
a poner este archivo Después de establecer este archivo, si ejecuto
este código en mi terminal. Ahora bien, si tecleo algo en este
campo de entrada como mi nombre, ahora solo se puede ver
el personaje estrella. Ocurrió por
este parámetro, y si presiono Enter, puedes ver la prueba
en mi conjunto de consumo, pero no puedes leer los
datos en este campo de entrada. Entonces así es como usamos este campo de
entrada para contraseña. Por ahora, voy a encomiar esta línea y volver a poner
este archivo. Además si quieres mostrar la actualización en vivo en tu
GUI, sí, puedes. Para eso, necesitas usar el asistente de
etiquetas. Déjame mostrarte. Primero, voy a escribir
un solo comentario aquí, etiqueta que también
muestra lo que es tipo. Se trata de actualización ligera.
Voy a crear una etiqueta. Etiqueta etiqueta igual a, voy a usar asistente de
etiquetas, etiqueta. Luego dentro de las rotondas primero, tenemos que
pasar el muster, que es la ventana raíz raíz, luego tenemos que pasar
la variable de texto Texto, variable, pelo, soy
pase o extremidad variable, que es nombre o nombre o. Atocoma
definirías la fuente. Fuente, quiero usar fuente aérea. Con eso, mi tamaño de fuente es 40. Atracoma también define
el color de primer plano,
AG primer plano y nuestro
color AG primer plano y nuestro Y voy a sub este expediente. Después de eso, también,
es necesario etiquetar esta etiqueta. Para eso, voy a escribir
label dot pack. Dentro del proceso redondo,
y también voy a asg poco relleno desde la dirección
YxS, relleno diez píxeles.
Voy a establecer este archivo. Después de establecer este archivo,
ejecutemos el terminal de inodo de código. Después de ejecutar el código
inode terminal, si tecleo algo
en nuestro campo de entrada, déjame mostrarte como mi
nombre, de lo contrario hola mundo Se puede ver cada vez
que escriba algún texto, lo contrario cualquier carácter,
se imprime el texto en nuestra ventana con
la ayuda de etiqueta. Estos son todos básicos
sobre el asistente de entrada. Espero que ahora te quede claro. Gracias por ver
este video estad atentos para el próximo estudio.
11. Widget de texto: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta con otro asistente relacionado con el tutorial. Y hoy en este tutorial, vamos a
cubrir asistente de texto. Se utiliza para entrada multilínea. De lo contrario, este propósito. El asistente de texto en
Kiner permite al usuario ingresar o esta la
multilínea de Es como un campo de
estilo de bloc de notas y admite formato avanzado,
etiquetas y desplazamiento Si hablo de
su sintaxis, primero, necesitamos definir una
variable en nuestro caso, asistente de
texto y luego
necesitamos usar esta
clase de texto de clase. Entonces dentro de la redondez, necesitamos pasar el muster, quiero ver la ventana principal, luego necesitamos pasar las
opciones como parámetro Si hablo de sus opciones, estas son todas las opciones que vamos a ir en el estudio,
como por ejemplo con altura, fondo, primer plano,
fuente, wrap,
padaxPadi, relieve, borde Ya estamos familiarizados con la
mayoría de las opciones. Empecemos lo
práctico y veamos cómo podemos usar el texto Wist Como pueden ver, estamos en mi editor de código de estudio de
usuarios, y ya creo una
ventana básica usando la clase TK, y dijimos geometría 400 por 300. Si quieres
aumentarlo, sí, puedes. Y si quieres
cambiar la dimensión, sí, puedes, depende de ti. Ahora, al principio, vamos a
crear el asistente de texto. Como ir a
tomar una variable y nuestra variable es texto,
texto igual a lo que voy a
llamar a clase de texto, esta. Después dentro de la rotonda al
principio va a pasar el muster y que es root quiero
colocarlo en una ventana de raíz Entonces voy a
pasar las opciones. Primero, voy a pasar altura,
altura , altura
igual a t, coma En la siguiente línea,
voy a definir mié. Con ancho igual
al dobladillo asignar 40. Entonces voy a
usar font, font. Aquí, quiero usar la fuente Aerial. Entonces dentro de la ronda
versus dentro del código doble,
voy a escribir AL. Aéreo y voy
a pasar tamaño de fuente 12. Entonces voy a
definir para color redondo, G, G iguales dos dentro
del doble código. Voy a pasar de color azul. Azul. Entonces voy a definir el
color de fondo usando BG, BG. Aquí lo voy a decir
color de fondo, amarillo
claro, amarillo claro. Después de definir el color de
fondo, entonces voy a usar otra
propiedad, que es el rap. Rap, rap igual a aquí
voy a envolver con
palabra, algún tipo palabra. Entonces entonces voy a
cambiar el estilo de borde. Para eso, voy
a tomar alivio. Alivio. Dentro del doble
curso, voy a usar grupo. Coma. A continuación, voy a
usar border with border with, border with,
voy a definir dos. En wrap, tenemos que
pegarle tres opciones. Ninguno, carácter y palabra.
Entonces tenemos que virarlo. Para eso, necesitamos
escribir texto, punto, paquete. Dentro del bris redondo también voy a asignar
algún padding, algún tipo pad Y, 20 pixel. De lo contrario, diez píxeles,
depende de ti. Entonces voy a establecer este archivo. Yo configuro este archivo, si ejecuto
este código en mi terminal, ahora se puede ver que este es
nuestro asistente de texto parece. Aquí podemos pasar texto
de alineación múltiple. Y si quieres obtener el texto y mostrar el texto
en tu terminal, en ese caso, necesitas
crear un botón. Además,
necesitas definir una función que vaya a extraer el texto. Entonces hagámoslo. Aquí, voy a
crear una función, Dave y nuestro nombre de función
es mostrar texto underscoe Mostrar texto, por ahora no
va a tomar ningún argumento y luego
dentro de esta función, necesitamos obtener el texto. Para eso, vamos a usar método
Git, algún tipo de contenido, contenido igual al texto dot Gate. Aquí utilizamos el método Gate
para obtener el texto. Entonces dentro de los vestidos redondos, ahora, necesitamos
definir el índice. Vamos a
partir de qué índice vamos a seleccionar el texto. Aquí voy a seleccionarlo
desde el principio. Quiero decir inicio
del índice. Entonces voy a pasar
dentro del doble curso, voy a pasar 1.0. Después después de la coma, dentro
del doble curso, quiero agarrar hasta el
final del personaje Así que pasa, así que para pasar final. Aquí, uno significa la línea uno y cero significa
cero carácter. Es el inicio del índice. Si seleccionas dos tenía,
entonces va a saltar a la línea número dos y si
cambias el valor cero, supongamos tres, luego
de la línea número dos, va a agarrar
el tercer carácter. Ahora, necesitamos imprimir
los datos en mi terminal. Entonces escribe print y dentro de
la rotonda,
voy a dar propina Dentro del
doble curso, entrada del Usuario usuario entrada aquí, acoma, voy a
pasar la variable Algún tipo contenía y ahora
necesitamos crear un botón. Siempre que presionemos el botón, va a mostrar
el texto en mi terminal. Aquí voy a
crear un botón y dentro de las prensas redondas, primero, necesitamos proporcionar
el muster que es root Entonces necesitamos proporcionar texto, texto botón, texto
igual para mostrar texto. Entonces tenemos que pasar el comando que va
a activar la función. Comando equval a nuestro nombre de
función es mostrar texto, mostrar bajo texto scode Entonces lo voy a empacar, empacar y dentro de la dirección redonda, estoy tipo pad Y, pad Y, diez píxeles, y voy a configurar este archivo Pero antes de ejecutar este
código en mi terminal, necesitamos hacer alguna corrección porque no necesitamos
ponerlo en un código doble. Tenemos que quitar el qd
de estos códigos dobles, y voy a configurar este archivo Después de establecer este archivo, si
ejecuto este código en mi terminal y pongo algún texto ficticio
en esta área de texto Y da clic en texto corto. Ahora puedes verlo imprimir los Datos
exactos los pegamos aquí. Imprime el
párrafo multilink en mi terminal. Ahora el problema
es que no tenemos ninguna palabra de desplazamiento en
este asistente de texto. Necesito barra de desplazamiento. Para eso, necesitamos crear
la barra de desplazamiento. Vamos a crear esta barra de desplazamiento. Antes del asistente de texto, aquí, voy a
definir la barra de desplazamiento Algunos teclean un
nombre variable
scroll, scroll, igual a scroll, igual a scroll bar. Desplazarse y dentro de
los vestidos redondos, pasamos el muster, que es donde vamos a poner esta barra de desplazamiento,
que Diez, tenemos que empacar
esta barra de desplazamiento. Algún tipo, scroll, dot, empaca dentro de los vestidos redondos, aquí, necesitamos
definir el lateral. Lado, voy a
moverlo del lado derecho. Derecha. Y necesitamos definir
el relleno, llenar, y quiero llenarlo
en Y xs. Así que para pasar Y. Ahora arriba crear esta barra de desplazamiento, necesitamos establecer esta
barra de desplazamiento dentro del texto Wiz Para eso, aquí, arriba
definir la raíz. Voy a definir la barra
de desplazamiento. Comando de desplazamiento Y. Para ello, utilice esta opción comando Y paseo
igual al conjunto de puntos de desplazamiento. Se va a establecer la
barra de desplazamiento a este asistente de texto. Establecer este archivo, y
voy a configurar este archivo. Entonces voy a
configurar esta barra de desplazamiento. Para eso, aquí después de
empacar el asistente de texto, voy a probar scroll dot
config scroll dot config dentro del comando Rundres
igual a vista de texto Voy a establecer este archivo. Después de configurar este archivo, si ejecuto
este código en mi terminal, ahora puedes notar
esta barra de desplazamiento Esta es la barra de desplazamiento. Y
si paso A data para desplazarse, ahora se puede ver esta barra de desplazamiento Si me desplazo hacia abajo, se puede
ver el contenido del área de texto. Barra de desplazamiento es muy
importante para el Asistente de texto. Espero que ahora te
quede claro cómo
puedes usar el texto Wizard en Ker.Thks para ver
este video
Estén atentos para el
12. Widgets de mensajes: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de
vuelta con otro tutorial relacionado con el asistente de atender. Y hoy en este tutorial, vamos a
cubrir mago de masas. El asistente de masas es
similar a la etiqueta, pero diseñado específicamente
para bloques largos de texto, a diferencia de label. Envuelvo el texto automáticamente. lo que es ideal para esta cosa texto estático de varias
líneas como instrucción o advertencia. Si hablo de eso sintaxis, necesitas usar este
método mensaje, luego primero, necesitas
definir el maestro, quiero decir la
ventana donde
vas a poner
el asistente de mensajes, luego puedes pasar tu texto y a continuación pasamos tus opciones. Si hablo de eso opciones, estas son todas las opciones
que vamos a usar en magos de masas. Con fondo de fuente para abajo realmente PadixPadi Justificar se utiliza para la alineación, y encore se utiliza
para la alineación de texto Entonces comencemos la práctica
y veamos cómo podemos usar estas opciones
con el asistente de masas. Así que finalmente, ini uso
un editor de código de estudio. Ahora, déjame mostrarte cómo
podemos usar el mago de masas. Al principio, voy a definir
un mensaje, masas de texto, algún tipo, masas
subrayan texto Masas de texto igual a
dentro de los metales redondos, voy a pasar un mensaje
multilínea Aquí, dentro de los vestidos redondos, voy a escribir este mensaje
multilínea Bienvenidos al inter tutorial. Este asistente de masas ajusta
automáticamente texto
largo y ajusta la
altura para alimentar el contenido. Después de eso, vamos
a utilizar al mago de masas. Para ello, necesitamos definir
una variable MSG en nuestro caso. Igual al mensaje. Mass wizard, entonces dentro del redondoSSF necesitamos definir la ventana donde vamos a colocar nuestro
asistente de masas, que Después, necesitamos
definir el texto. Texto igual a donde voy a pasar el texto del mensaje variable. Después, entonces voy a definir
a la hierba. Nosotros, voy a definir 300, continuación, voy a definir fuente. La fuente tenía, quiero
usar la fuente de área. Dentro de las capas dobles, estoy escriba area y también voy a definir el
tamaño de fuente que es trap. Después después de la coma, voy
a definir color de fondo, BG, fondo, y
voy a usar azul claro Azul Claro. Entonces voy a
definir fondo color a G, y aquí dentro
del doble curso, voy a escribir negro. Después de eso, después de eso, voy a darle estilo al
poder. Soly realmente Reale aquí en el doble curso, voy a pasar levantado, coma y luego voy
a agregar poco relleno Huevos de almohadilla, huevos de almohadilla, diez, también almohadilla Y, también diez. Después de eso, necesitamos
alinear las masas. Quiero
alinearlo desde la izquierda, algún tipo justifique
dentro del curso Dufl, voy a escribir let value, y voy a configurar este archivo Después de configurar este
archivo, necesitamos
empacar las masas
reservar algún tipo
msg masas dot pack mthodpack
dentro de la roundresss,
también agregar poco padding,
algún tipo pad Y empacar las masas
reservar algún tipo msg masas dot pack mthodpack
dentro de la roundresss,
también agregar poco padding, , yendo algún tipo pad a pixel.
Voy a establecer este archivo. Después de configurar este archivo, si
ejecuto este código en mi terminal, déjame mostrarte para ejecutar
este código en mi terminal. Aquí se muestra el mensaje. Entonces espero que ahora te
quede claro, ¿ cuál es el uso
de Masses Weizer Gracias por ver este video, Sadi en para el próximo Tutorio
13. Diseño del empaque: Hola, chico. Es bueno
verte de vuelta. Una vez más, estoy de vuelta con un
nuevo tutorial relacionado con Kiner. Y hoy en este tutorial, vamos a aprender manejo de
maquetación. Básicamente, Kiner ofreció
tres gerente de diseño principal,
pack, codicia y gusto Y también puedes anidar diseños
usando marcos dentro de marcos. Y hoy en este tutorial, vamos a
aprender maquetación de pack. Ahora la pregunta es ¿qué
es el diseño de paquetes en Kinder? El
gestor de geometría pad es una de las formas más sencillas de
posicionar al asistente en un ala. Es automáticamente
organizar asistente relativo entre sí en una
de las cuatro direcciones, arriba, abajo, izquierda o derecha. Si hablo de una sintaxis básica, necesitamos escribir asistentes Primero, necesitamos escribir
la variable del asistente a, luego necesitamos usar
punto PAC, este método. Entonces dentro de los
versos redondos tienen que pasar las opciones como PadixPady,
side, et cetera fill Si hablo de sus opciones, estas son todas las opciones que
vienen con el diseño del paquete. Lateral, llenar, expandir,
padix y Pad Y. Opción
interior, podemos
pasar valor total de cuatro Arriba es el valor predeterminado, luego abajo, izquierda o derecha. Entonces tenemos llenado. Se va a expandir asistente para llenar espacio. Puede llenarlo s o YxS o ambos. Entonces tenemos expandirnos. Permite que
el asistente se expanda para llenar cualquier espacio extra en
el maestro de geometría. Entonces tenemos a Padix y Padi y ya estamos
familiarizados con Empecemos la
práctica y veamos cómo podemos usar padayout Como puedes ver, estamos en
Magazines studio editor de código, y ya creo un archivo
Python main dot py y aquí creamos el layout básico con
dimensión de 300 por 200. Y ejecuto el bucle principal. Ahora aquí, voy
a añadir algunos botones. Estos son
el nombre del primer botón BTN uno. BTM uno igual a, voy a usar
botón botón asistente Entonces dentro de las rotondas necesitamos pasar el nombre maestro que es root entonces
voy a establecer un texto de botón,
texto igual a pelo,
voy a escribir, voy a escribir su posición, que es botón superior Voy a colocar este
botón en la parte superior de esta ventana. También va a proporcionar
coma entre el nombre de la ventana y el texto Después de eso, voy a proporcionar un
color de fondo, algún tipo BG. Pelo de fondo,
voy a usar color azul
claro, azul claro. Azul. Entonces duplico
este botón, y lo voy a
nombrar botón dos, aquí y aquí, voy
a llamarlo botón de elevación. Entonces voy a quitar
top y en vez de top, voy a escribir, botón de vuelta. Y también voy a cambiar
su color de fondo. Voy a
hacerlo verde claro. Luz, verde claro. Entonces lo duplico otra vez y voy a nombrar a
este botón botón tres, este es botón, botón
derecho. Y voy a
hacer este
rosa claro . Voy a
establecer este archivo. Hasta configurar este archivo, ahora voy a usar
el método
pack, método de diseño de empaque porque necesitamos
empacarlo en nuestra ventana. Primero, voy a
empacar el primer botón, subtipo BTN botón un
punto Pack método de diseño Empaque. Después dentro del
redondo dice, primero, voy a usar
lado opción lateral y voy a hacer que hable Y voy a poner este archivo. Perturbar este archivo,
trastornar este archivo, ejecutemos el código
en nuestra terminal. Arriba en el código, como puedes ver, aquí
es donde
colocamos el botón superior. Ahora voy a llenar
este botón en Xxs. Para eso, aquí voy a
teclear relleno y voy a
llenarlo en dirección Xxs Y voy a poner este archivo. Perturbar este archivo, si vuelvo a
ejecutar este código, ahora puedes verlo sentir el
botón en la dirección de X. Básicamente, se extiende por la parte superior porque
tenemos un espacio arriba. Ahora voy a
añadir un poco de relleno. Para eso, aquí, voy
a usar la propiedad pad Y. Pad Y. Se va a agregar relleno
en dirección Y x. Aquí voy a pasar diez. Voy a establecer este
archivo. Después de establecer este archivo, agregas mi código
en mi terminal. Ahora puedes notarlo un
poco de acolchado en él. En vez de diez,
voy a usar 20. Y si hice este
código en mi terminal, ahora se puede notar
que proporciona gap. Agrego almohadilla de 20 píxeles en YxS. Desde arriba, agrega relleno de 20 píxeles y
desde abajo, también agrega relleno de 20 píxeles. Entonces por ahora, voy a quitar el relleno porque
ya estás familiarizado con eso. No voy a
explicarlo aquí. Ahora, voy a
hablar de expandir. Pero antes de hablar de expandir, me gustaría
mostrarle otro lado. Voy a
duplicar esta línea. Esta vez, voy
a empacar botón dos, así lado igual a izquierda, y voy a sentirme
en dirección YX Además, duplico esta línea y voy a empacar el botón tres. Esta vez, voy a empacar
este botón en el lado derecho. Derecha. Y además, lo
voy a llenar en YxS voy a poner este archivo Después de que configuré este archivo, tú
en este código en mi terminal, es como
presionamos nuestro botón y
expandimos nuestros botones. Aquí expandimos nuestro
primer botón en Xxs y aquí expandimos nuestro
segundo botón y tercer botón en YxS presionamos nuestro segundo botón en el lado izquierdo y presionamos nuestro tercer
botón en el lado derecho Ahora, déjame mostrarte otro
ejemplo con expandir. Para eso, voy a
comprometer todas estas líneas. Voy a poner esa sección
en un comando multilínea. Entonces estoy tipo y
voy a mover este código dentro de este
comando multilínea. Déjame mostrarte. Y voy a crear
a otro botón. Para crear el botón, nuevamente, voy a copiar
esta variable de botón, y la voy a pegar aquí. Y este es nuestro primer botón, y este es el botón superior. Entonces duplico esta
línea o el botón dos, y
lo voy a colocar en la parte inferior. Además, voy a
cambiar su color. Voy a
hacerla crema ligera. Después de eso, voy a
empacar tanto el botón. Para eso, voy a
teclear botón, BTN. Para eso, voy a hacer
ese botón, BTN, botón uno,
punto, pack, botón un paquete
dentro de los vestidos redondos Aquí, primero voy a definir
el lado lateral lateral, arriba. Voy a colocarlo en la parte superior. Entonces voy a
usar llenar propiedad, fallar, y esta vez, quiero llenar el botón
en ambas direcciones, ambas. Se va a llenar el
botón en YX también es xs. Entonces voy a expandirme, expandirme, voy
a hacerlo realidad. Entonces nuestra condición de expansión es cierta. Así que por favor establece este archivo si
ejecuto mi código en mi terminal. Así es como se ve nuestro
botón. Rellene ambos, permita que se estiren horizontal
y verticalmente y se expandan a través de skinter de cola para compartir cualquier espacio extra
con este asistente De la misma manera, voy
a empacar otro botón. Entonces dupo esta
línea, y esta vez, voy a cambiar de lado
solamente Voy a hacerlo botón. Rellenar ambos y expandirlos. Después de configurar este archivo, si ejecuto
este código en mi terminal, y también voy a
cambiar el nombre del botón. Es el botón dos.
Después de establecer este archivo, si ejecuto este código
en mi terminal, es como ahora se ve. Ahora, ¿qué está pasando aquí? Ambos botones uno y dos expanden por igual para
llenar el espacio vertical. Rellenar ambos valores les permiten estirarse tanto horizontal
como verticalmente. Ahora, déjame mostrarte la, la diferencia entre expandir
y expandir forbs Para eso, voy a duplicar esta sección y comentar anterior
a la línea. Diez, aquí, voy
a usar llenarlo en Xxs. Además, voy a llenar
el botón dos en X xs. Esta vez, voy a hacer que
una de las caídas de valor. Voy a hacer que
el botón uno caiga el valor. Déjame mostrarte expandir caídas. Además, voy a cambiar el
lado del segundo botón. Voy a hacer que se hable, y voy a poner este archivo. Después configuré este archivo, si
hice este código en mi terminal, ahora puedes notar expandir, si expando el tamaño de la ventana, si explico su altura, puedes notar el botón superior, quiero ver el botón uno,
permanecer a la misma altura. Incluso cambias el tamaño de la
ventana verticalmente, diriges, te quedas a la misma altura Pero el segundo botón, lo contrario el botón inferior se estresa verticalmente para
ocupar el espacio extra cuando la
altura de la ventana se incrementa debido a que ella expandimos verdad. Y si hago que tanto el valor
caiga, déjame mostrarte. Si hago que tanto el valor caiga y luego configuro el archivo y ejecuto este
código en mi terminal, ejecutemos el código
en mi terminal. Ahora si trato de ampliar
el área de la ventana, ahora puedes ver
nuestro segundo botón y botón superior tanto el
fijo a su lugar. Permanece a la misma altura. Si lo aumento, aún se
queda a la misma altura. Esa es la diferencia entre expandir verdadero y expandir falso. Espero que ahora te quede claro. Esto es para este tutorial
en el siguiente tutorial, vamos a aprender
otro ejemplo de maquetación. Vamos a aprender
sobre el diseño de la cuadrícula. Gracias por ver
este video Aturdido.
14. Disposición de cuadrícula en tkinter: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial
relacionado con la gestión de
maquetación de Kinter Y en este tutorial
vamos
a aprender el diseño de KinterGrid Otra pregunta es ¿qué
es el diseño de KinterGrid? El administrador de geometría de rejilla
organiza Wizard en una estructura similar a una cuadrícula de tabla
usando filas y columnas Te da un control fino
sobre cada asistente que aparece. Puede obtener un mejor control
si usa el diseño de cuadrícula. Si hablo de su sintaxis, esta es la sintaxis básica. Primero, tenemos que
pasar el nombre del asistente, luego el método de cuadrícula de puntos. Dentro de los
latones redondos primero en
pasar fila definir
la posición de la fila, también en para definir
la posición de la columna Si hablamos de opciones
comunes de grid, viene con row column,
rowspan, column span, sticky SpadPadoy, iPadX e iPadoy Usando esta opción, podemos colocar cualquier asistente en cualquier posición. Entonces si hablo de la
ventaja clave del diseño de cuadrícula, es mejor para
desde el diseño de estilo, como iniciar sesión desde la
calculadora, etcétera Puede alinear los asistentes
con precisión usando filas y columnas
y las opciones adhesivas ayudan a
alinear el asistente dentro Recuerde una
regla más importante sobre el diseño de la cuadrícula. No mezcle el paquete y la rejilla en el mismo contenedor o en un
mismo marco o en la misma ventana. Entonces comencemos la práctica y veamos cómo podemos usar el diseño de cuadrícula. Como puedes ver, estamos en
mi editor de código vis studio y ya creé un archivo
Python main dot Pi. Dentro de este archivo Python, creo el diseño básico,
el diseño básico del ala Kiner y mi dimensión de diseño
es de 300 por 150 Ahora usando Gridaut
vamos a crear un login desde. Entonces primero, voy
a definir dos etiquetas. El primero es para el nombre de usuario y segundo se llama contraseña. Escriba etiquetas dentro
de los vestidos redondos, voy a pasar el nombre
maestro que es root Quiero colocarlo
en una ventana raíz. Después para definir el texto, texto dentro de los códigos dobles, aquí voy a
escribir nombre de usuario. la misma manera,
voy a duplicar esta etiqueta y después de
duplicar esta etiqueta, voy a reemplazar
nombre de usuario por contraseña. Y ahora voy a posicionar
los diseños usando grit. Para eso, aquí,
voy a escribir punto de arenilla. Dentro de la prensa redonda primero, queremos definir la fila. Fila, aquí, voy
a asignar cero. Quiero colocarlo en posición de fila
cero. Quiero establecer la
posición inicial de ARU en. Después para definir la columna. Columna también cero. X significa que va a comenzar esta etiqueta desde la esquina
superior izquierda. Después de eso, necesitamos definir
padex y pervy type pad,
X, diez, coma, pad Y, cinco Aquí le asignamos
emparejamiento a esta etiqueta. Desde Xxs asignamos
diez píxeles y desde los YxS asignamos cinco Ahora de la misma manera, voy a colocar
el nivel dos, y quiero
colocarlo así que uso grid out y quiero colocarlo
en la regla número uno,
pero en la columna número cero. El número de columna sigue siendo cero. Y voy a poner este archivo. Ahora para establecer este archivo, veamos dónde va a
colocar estas etiquetas. Arriba en esta terminal de articular, ahora se puede ver que juega
este sello en esa posición. Primero, reproduce el nombre de usuario en el número de fila cero y el número de
columna cero, luego reproduce la contraseña
en la fila número uno, pero la columna número cero. Ahora, trata de entender
la fila y las columnas. Así que volvamos a la pantalla. Ahora, tratemos de entender
cómo funcionan las filas y columnas en el diseño de la cuadrícula. Supongamos que esta es toda nuestra
raíz Winto como te dije, fila y número de columna
comenzando desde cero Si utilizo la fila cero
y la columna cero, entonces va a
colocar al mago en esa posición, en ese alféizar. la misma manera, si no
cambiamos el número de fila,
si lo hago cero, pero si cambiamos el número de
columna como uno, entonces va a colocar este
elemento en esa posición. Pero si cambiamos el número de fila, supongamos la fila número dos, pero la columna número uno, entonces
va a colocar a este
asistente en esa posición. El mago puede ser cualquier cosa. Podría ser una etiqueta, también un
botón de campo de entrada, lo que sea. Supongamos que si quieres colocar un botón
en esa posición, en ese caso, necesitas pasar la fila número tres y la
columna número tres. Puede asumir el trabajo de fila en la dirección de
x y el
trabajo de columna en la dirección XX. De acuerdo con nuestro código, pasamos nuestra primera etiqueta
en esa posición. Aquí colocamos nombre de usuario y colocamos nuestra segunda
etiqueta en esa posición. Aquí colocamos contraseña, y luego tenemos que tomar
Kotal dos campo de entrada Uno es para nombre de usuario y
quiero colocarlo al lado de él. Quiero colocarlo al
lado derecho de esta columna. Entonces necesitamos definir
la posición. Para el primer campo de entrada, voy a colocar el número de fila
cero y la columna número uno, y para el segundo campo de entrada, voy a colocar la
fila número uno, también la columna número uno. Volvamos al codecator. Ahora después de que tome el nivel, voy a tomar para
escribir dos campo de entrada. Aquí voy a
escribir entrada, entrada, y primero voy a definir
la ventana
aquí vamos a colocar la entrada
y voy a pasar root. Entonces duplico esta entrada, y voy a colocar
nuestro primer campo de entrada. Como te dije,
voy a
colocarlo al lado derecho del nombre de usuario. Voy a usar el método grid
para colocar el campo de entrada. Primero, voy a definir
fila nuestro número de fila es cero, pero nuestro número de columna
es la columna uno. Entonces voy a
añadir poco relleno. Quiero agregar pad en Y xs, pad, Y, aquí, voy
a proporcionar y pixel. Entonces copio esta sección
y la coloco aquí. Esta vez, voy a poner el segundo campo de entrada
al lado del Nivel dos. Quiero decir
contraseña. Quiero colocarlo al lado derecho
de la contraseña. Entonces aquí necesitamos
definir la posición. Esta vez, voy
a usar la fila uno, fila uno y la columna uno, y voy a configurar este archivo. Up configurar este archivo ahora vamos a
ejecutar el código en nuestro terminal. Ejecuta este código en nuestro
terminal, como puedes ver, aquí es donde reproduce
los campos de entrada, lado
derecho del nombre de usuario y lado derecho de la contraseña. Ahora déjame mostrarte una cosa. Lo más importante, que es la opción pegajosa, pegajosa. Pero antes, voy a reducir algunos caracteres
de contraseña. Voy a simplemente escribir pass y configurar este archivo de nuevo
y volver a ejecutar el código. Ahora puedes notar
la alineación, la alineación del contenido. Quiero ver el
texto del asistente, una alineación media. Ahora necesitamos alinear el
texto en el lado derecho. Para eso, necesitamos
usar la opción pegajosa. Tratemos de entender qué podemos hacer con las opciones
adhesivas. Tratemos de entender qué
es el diseño pegajoso ingred. Ahora nuestro diseño se ve así. En nuestra columna cero
y cero a quien colocamos nombre de
usuario y luego
colocamos la cuota de entrada. Ahora el problema es que
es su alineación. Este asistente es medio
align dentro de esta celda, pero quiero mover este
asistente en el lado derecho. Para eso, necesitamos
usar propiedad pegajosa. Si usamos la opción pegajosa, entonces podremos mover este asistente dentro de esta celda,
algo así. Aquí movemos el
asistente de etiquetas a este lado. Quiero decir del lado derecho. Esto es lo que
podemos hacer con el palo. Podemos mover al mago
dentro de esta celda. Básicamente en el diseño de QuintersGID, cada celda es como una caja, y por defecto, el asistente se encuentra en el
centro de Esta opción pegajosa
se utiliza para pegar el asistente a un sitio específico. Si quieres mover
el asistente en la parte superior, entonces necesitas usar TapTaln N significa Norte. Es bastante similar con mapa. Como saben, la parte superior de
este mapa siempre está al norte. Entonces el lado inferior siempre
está al sur. Y el lado derecho siempre
está al este y el lado izquierdo siempre
está al oeste. Es el trabajo de esta manera. Además, puedes
combinar direcciones, como si usas tanto el valor juntos
como sticky WE, lo va a desviar
horizontalmente la misma manera, si
quieres usar este valor, sticky Ns, lo va a
strace verticalmente Y si usas Ns Ew, entonces va a
llenar toda la celda Entonces volvamos al código. Así que de nuevo, estoy de vuelta
a mi código resistue, y esta vez voy
a usar esta opción Almohadilla Y más suave, voy
a usar opción pegajosa. Sticky sticky y aquí, voy a usar el valor E, E. voy a copiar la misma
propiedad y valor y
voy a probarlo dentro la etiqueta dos, y
voy a configurar este archivo. Después de establecer este archivo, si ejecuto
este código en mi terminal, ahora puedes notar que
alineó el texto, alineó el texto de nivel en lado
derecho, y esto
es lo que queremos. Ahora, vamos a crear
el botón de inicio de sesión. Algún tipo botón botón asistente y dentro de las rondas primero para definir el
nombre de la ventana que es root, luego necesitamos pasar el texto del
botón y aquí tecleo dentro del doble
curso estoy tipo login Después usando el diseño de avaricia, vamos a
pegar este botón Escribe avaricia dentro del vestido
redondo, esta vez, voy a usar la fila
número fila número dos Forma, quiero abarcar este tipo de
columna span de columna, y quiero abarcar este botón hasta dos
columnas para pasar dos aquí. Además, voy a agregar
poco emparejamiento en Y xs, pad, Y, pad, Y,
voy a pasar delgada. Ahora va a
estresar el botón hasta
dos columnas Para entender
lo que básicamente pasó, voy a agregar un
color de fondo a este botón Entonces botón de texto,
voy a agregar coma, y aquí voy a usar BG. BG significa fondo,
y para fondo, voy a usar
color amarillo amarillo. Voy a
establecer este archivo. Después de configurar este archivo,
si ejecuto este código en mi terminal, ahora está
claro para ti. Recuerde, si no
definimos la posición de la columna, sino que definimos la posición de fila, entonces va a colocar a
este asistente en la columna cero. Entonces después de eso, voy
a agregar valor
pegajoso, pegajoso y esta vez, quiero estirar. Quiero estirar el botón en horizontal y quiero
ocupar dos columnas. Por eso lo estiro
hasta dos columnas de spam. Aquí dentro de los
códigos dobles para eso, necesitamos pasar nos
estiramos horizontalmente. Después de esa coma intraproft y voy a poner Después de configurar este archivo, si ejecuto
este código en mi terminal, aquí puedes ver el resultado. Aquí estiramos este
botón hasta dos columnas. Espero que ahora el concepto sea
claro para usted cómo podemos usar cuadrícula para colocar al
asistente en cualquier posición. En el siguiente tutorial,
vamos a hablar sobre el diseño del
lugar. Gracias por ver este video. Estén atentos para nuestro
próximo tutorial.
15. Disposición del lugar: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con
la administración de ventanas, y hoy en este tutorial, vamos a
aprender el diseño del lugar. Ahora la pregunta es,
¿qué es el diseño del lugar? El
administrador de geometría de lugar se utiliza para posicionar los asistentes
explícitamente en coordenadas
específicas
o posición lista dentro de su asistente principal, como raíz o marco A diferencia del lugar y la cuadrícula
que administran el diseño automáticamente, el lugar es el posicionamiento
manual. Así que manualmente, podemos
posicionar a nuestros asistentes en cualquier posición usando Xxs Si hablo de
su sintaxis básica, entonces primero escriba el nombre del asistente y necesitamos usar
este método, lugar. Entonces dentro del redondeo dice, necesitamos definir la
posición X y la posición YxS Además, puede usar el diseño de posicionamiento
relativo in situ
usando estas opciones. X e Y. Si hablamos de sus opciones, viene con opción sb total. X, Y, LX, Y real con
altura y anclaje. X significa posición
horizontal absoluta. Y significa posición
vertical absoluta. X real significa posición
horizontal relativa. Aquí tenemos que pasar
valor entre 0.0 a 1.0 del peso padre. Pero en el posicionamiento
horizontal absoluto, necesitamos usar unidades de píxeles. la misma manera, tenemos Y, entonces podemos definir dentro de la
altura de este asistente usando estas opciones y
al fin, tenemos ancla. Usando ancla, podemos controlar dónde está anclado el asistente Entonces estas son las opciones que
podemos usar con el diseño del lugar. Si comparamos con
otros diseños, si comparas con la
cuadrícula de empaque y los colocas juntos, PAC es fácil de usar. La rejilla también es fácil de usar, pero el lugar no es tan fácil de usar. Tenemos que configurarlo minual. Pero si hablamos
del control preciso, entonces los lugares tienen la mano superior. Así que el diseño de cuadrícula es uno de los
mejores métodos de diseño en Kiner. Si comparas con
empacar y colocar. Ahora cuando necesitamos
usar el diseño del lugar. Cuando necesite un diseño
perfecto de píxeles, puede usar Disposición de lugar. Al diseñar
interfaces o juegos personalizados, puede usar el diseño del lugar. Pero debes
evitar usarlo para los froms
receptivos o el cambio de tamaño
dinámico Porque no
adopta automáticamente. Si hablamos de
toda la conclusión, entonces en el diseño de su lugar, puede
posicionar mínimamente a los asistentes Admite tanto el posicionamiento absoluto como
relativo y utiliza codificación para controlar cómo la
visita se alinea con su punto. Puede darle un control total, pero requiere más eput
para un diseño receptivo Comencemos lo
práctico y tratemos de
entender cómo podemos
usar el diseño del lugar. Por último, como
puedes ver, estamos en mi editor de código visual studio y aquí creamos el layout básico. Establecemos la geometría 300 por 200. Ahora voy a
definir un botón. Entonces voy a escribir
una variable BTN,
botón uno, botón uno, igual a, voy
a usar botón Wizard Entonces lo voy a colocar en
un marco raíz, ventana raíz. Después de eso, voy a
poner el botón texto, texto. En cambio el doble curso,
voy a escribir el botón uno. Ahora voy a
colocar este botón. Voy a colocar el botón
usando el método de diseño de lugar. Voy a escribir BTN
botón punto lugar. Luego dentro de los versos redondos, necesitamos definir los
Xxs y un eje Y. Como ya les dije, X significa posición horizontal
absoluta. Entonces aquí, voy
a escribir X igual a, voy a pasar 20. Desde el xs, quiero
moverlo 20 pixel y desde los YxS voy a
moverlo 30 pixel, y voy a sub este archivo Después de configurar este archivo, si ejecuto
este código en mi terminal, aquí puedes ver el resultado. De los XX toma
un espacio total de 20 píxeles, y de los YxS toma
un espacio total de 30 píxeles Posicione con precisión cualquier
asistente en nuestra ventana. Ahora bien, este ejemplo es para el posicionamiento
absoluto. Ahora déjame mostrarte el ejemplo
de posicionamiento relativo. Voy a crear
otro botón. Digamos que voy a
duplicar esta sección. Copia esta sección y
voy a pegarla aquí. Entonces le voy a
nombrar botón dos. También voy a cambiar
el botón de nombre dos. Ahora, en lugar de usar unidades
absolutas, voy a usar
unidad relativa. Déjame mostrarte. Entonces aquí voy a usar RLX wd. Se refiere a la posición
horizontal relativa, y aquí necesitamos
valorar entre 0.0 y 1.0 del peso
porcentual. Desde los XXs quiero presionar el botón en el medio
de este contenedor Entonces voy a pasar así que
voy a pasar 0.5. la misma manera desde
el YXS quiero
asignar el botón al
centro de esta página Para eso, quiero escribir RL Y 0.5. Entonces necesitas usar otra
propiedad llamada ancla. Ancla, y aquí voy
a usar valor central. Centro. En cambio el código
único, centro. Después de eso, también,
necesitas cambiar el nombre del botón,
es el botón dos. Quiero establecer este archivo.
Después de configurar este archivo, si ejecuto este código
en mi carminal aquí es donde colocamos nuestro
botón a mitad de esta página Colocamos el botón horizontal y verticalmente al centro
de esta ventana. Ahora, quiero mover este
botón del lado derecho. Para eso, voy a incrementar el valor de la verdadera
X. Déjame mostrarte. Ahora voy a pasar 0.8 y configurar este archivo y volver a
ejecutar este código. Después de ejecutar este
código, como pueden ver, ahora mueve el botón del lado
derecho de esta ventana. Usando esta opción, podemos
colocar el botón en cualquier lugar nuestra Ventana y es trabajo
relativamente, no absolutamente. Esto es para este tutorial. Espero que ahora te quede claro cómo podemos usar el diseño del lugar. Gracias por ver este video, estad atentos para el
siguiente tutorial.
16. Diseños anidados (cuadro dentro de marco): Hola. Es bueno
verte de vuelta. Una vez más, estoy de vuelta con un nuevo
tutorial relacionado con la gestión de
maquetación de Kiner Y en este tutorial, vamos a aprender diseños de
Kinternsted Ahora la pregunta es,
¿qué son los diseños anidados? En Kiner puedes anidar
marcos uno dentro del otro y asignar diferentes
gestores de maquetación como pack, grid o place a cada uno Este enfoque es
útil cuando se desea organizar la interfaz de usuario en sección. Aplica diferentes diseños a cada sección y crea interfaces complejas, limpias y manejables Si hablo
de los beneficios de los diseños anidados, podemos usarlo para la interfaz de usuario modular Cada sección está
limpia y separada. Podemos usarlo para un diseño
flexible, y además es muy
fácil de mantener. Es más fácil leer y
actualizar interfaces complejas. Pero una
regla más importante que debes recordar. Paquete de mezcla vecino y rejilla
en el mismo contenedor. Quiero decir el mismo marco, pero se puede usar pack en un marco y rejilla
en otro marco. Si hablas de la
característica y el beneficio, la característica más importante
es el marco dentro del marco. Se utiliza para la
agrupación lógica de magos. Diferentes gerentes de diseño aplican diferentes diseños a cada grupo, y es ideal para, por
ejemplo, desde el diseño, el diseño Darbod y las IU de
múltiples secciones Estudiemos prácticas y veamos cómo podemos usar diseños anidados Como puedes ver, estamos en mi editor de código de
Wizard studio, y ya creamos un archivo Python main dot pi y creo una simple ventana Kiner Y asigno con 400 pixel
y altura 300 pixel. Al principio, voy
a crear el frame uno. Quiero decir el marco superior. Como pueden ver aquí, tomo
una variable nombre top frame y frame igual dos
top frame igual a dos, usamos frame wizard y lo
ponemos en una ventana raíz. Luego establecemos un color de fondo, color azul de
línea, y establecemos
una altura de cien píxeles. Después colocamos este marco
usando Pack Math pack, y llené este en Xxs Si configuro este archivo y ejecuto
este código en mi terminal, nuestro marco superior se ve así. Ahora volvamos a llegar al código. Y ahora quiero poner
un texto al laboratorio superior, y ahora voy a poner
un texto en el marco superior. Para eso, aquí, voy
a usar etiqueta etiqueta, y quiero poner la
etiqueta en el marco superior, luego quiero asignar
el texto a este marco, y nuestro texto de etiqueta es marco superior. Después establecemos un
color de fondo azul claro y luego etiqueto esta etiqueta y
asigno poco relleno en YxS Este es nuestro marco superior. la misma manera, voy
a crear el marco inferior, que va a contener
un diseño de cuadrícula dentro de él. Aquí voy a
crear un marco inferior. Marco inferior igual a marco y lo pongo en una ventana raíz, después puse un
color de fondo gris claro. Después de eso, empaco este marco
inferior y lleno este en ambas direcciones
y hago que esto expanda sea cierto. Ahora bien, si configuro este archivo
y ejecuto este código en mi carminal ahora nuestro
diseño se ve así Este es el marco superior y
este es el marco inferior, y puedes notar y puedes notar el fondo de color
gris. Ahora, vamos a trabajar en
el marco anidado. Vamos a
poner un marco dentro este marco inferior
para los campos from. Aquí paso un marco único y
comento anidado dentro, marco
inferior para desde campos Después de eso, voy a
crear otro marco, y nuestro nombre de marco
es de frame. De marco igual a
su uso asistente de marco, y luego pongo esto de marco
dentro del marco inferior, no a la ventana raíz. Pongo este marco en
este marco inferior. Después asigno un
color de fondo gris claro, igual que el marco dos.
Entonces empaco este marco. Entonces dentro de este nasttfFrame, voy a agregar una
etiqueta y un campo de entrada usando el diseño de cuadrícula met Aquí creo una etiqueta y pongo esta etiqueta dentro
del marco de from. Y el texto de nuestra etiqueta es nombre, y nuestro fondo de etiqueta
es gris claro. Dentro de este marco de formulario, aquí utilizamos el método de diseño de cuadrícula
y colocamos esta etiqueta. Después creamos una entrada,
y de la misma manera, colocamos esta entrada dentro
de este marco de formulario y usando el método de diseño de
cuadrícula, colocamos, colocamos
este feed de entrada. Si configuro este archivo y ejecuto
este código en nuestra terminal, aquí es donde ponemos la
etiqueta de nombre y el feed de entrada. la misma manera, tenemos que hacer lo mismo por la contraseña. Y ya aprendemos
el método de posicionamiento, cómo puedes usar fila y columnas. la misma manera,
voy a poner otra etiqueta y el campo de
entrada para el correo electrónico, y colocamos
ambos usando el diseño de cuadrícula. Y por fin, voy
a añadir un botón. Voy a agregar este botón
dentro de este marco de formulario. Entonces este es el gran ejemplo
de diseño de cuadrícula anidada. Y recuerda, no usamos la
codicia y empacamos juntos. Quiero decir dentro de
este marco de formulario, no
usamos la codicia
y empacamos juntos Pero puedes notar que nuestro
marco de formulario juega con el método pack. Ato este
con el método pack, pero dentro de él, no usamos método
pack y el
método green juntos. Utilizamos solo grilla. Entonces, al principio, creamos un
primer marco, el marco superior. Después dentro de este marco superior, ponemos un nivel
usando el método de pack. Después creamos otro marco. Este es un segundo
marco, y este
es para fondo y este
es marco inferior. Y además empaco este
marco inferior usando el método pack. Entonces dentro de este marco inferior, creo otro marco. Pero aquí
volvemos a usar el método de empaque para colocar el marco desde
dentro del marco inferior. Luego dentro de este
marco de formulario, creamos esta forma. Pero esta vez usamos el diseño de cuadrícula para colocar la etiqueta y el campo de
entrada y los botones. Entonces, para configurar este archivo, si ejecuto este código
en mi terminal, es como se ve nuestro
layout. Espero que ahora te asuste
lo que es el diseño anidado. Gracias por ver este video
Sitio para el siguiente capítulo.
17. Widget del botón de verificación de Tkinter: Hola. Me alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial. Y hoy en este tutorial,
vamos a
hablar de Kiner Check button wizard El botón de verificación en Kinter permite al usuario activar o desactivar una
opción Es similar a la
casilla de verificación en formas de onda. Y si hablo de
su característica clave, se puede verificar o desmarcar Si lo comprobé, entonces su valor se convierte en uno y si
lo desmarqué, entonces su valor se convierte en cero Se utiliza para múltiples opciones
independientes. Además, se puede vincular a una
variable para rastrear su estado. La variable podría ser variable, variable cadena o variable
booleana Déjame mostrarte un ejemplo de
cómo podemos usarlo. Como pueden ver, estamos en
mi editor de código de estudio Visal y aquí ya creo
una ventana básica de Kiner Ahora, al principio, necesitamos definir una variable y nuestra variable está acuerdo donde Egrewa igual
a int variable, intwa Aquí, voy a
poner todos los indsers. Después de eso, voy a
crear un botón de verificación. Para eso, voy a
definir una variable y
nuestra variable está de acuerdo de
acuerdo igual a aquí, necesitamos usar el botón de verificación. Luego dentro de las
prensas redondas, al principio, necesitamos proporcionar el nombre
maestro que es root. En qué ventana voy
a pegar el botón de verificación. Entonces necesitamos definir el texto, Stokma soy tipo, texto,
texto dentro de las comillas dobles, voy a pasar, estoy de
acuerdo con este término A continuación, necesitamos usar el parámetro importante
llamado variable. Entonces para atar variable, variable va a almacenar el
estado de la casilla de verificación. Podría ser variable de cadena
o indies son variables. En nuestro caso, héroe
uso en variable, y voy a pasar el nombre de la
variable a creció. En nuestro caso, si marcamos
este botón de verificación, va a almacenar un
valor y si lo desmarcamos, va a almacenar valor cero Entonces necesitamos
empacar esta variable. En la siguiente línea, empaco
esta variable y uso algo de relleno en YxS
voy a establecer este mosaico Si configuro este archivo y ejecuto
este código en mi terminal, es como se ve. Es solo un botón de verificación. Y como puede ver, no
definimos ninguna dentro de la altura
a esta ventana. Por eso se ve
así. Nosotros no establecemos la geometría, y
no la necesito. A continuación, voy a
definir una función que va a mostrar el valor. Para ello, hemotypetap y nuestro nombre de función es Entonces dentro de esta declaración
impresa, si hubiera usado una condición. Si acuerda palabra u obtiene algún valor, entonces va a imprimir trampa, lo
contrario, va a
imprimir sin marcar Entonces cada vez que marque
esta casilla de verificación, entonces va a enviar
uno en esta variable. Entonces obtiene un valor. Entonces va a imprimir tramposo. Y si lo desmarqué,
entonces va a llenar
el estado e
imprimir sin marcar entonces va a llenar el estado e
imprimir sin Y para ejecutar la función, aquí necesitamos usar un botón. Entonces aquí, voy a
definir el botón. Primero, definimos
el botón, luego colocamos el botón
en una ventana raíz, y este es nuestro botón
gusto, check state. Y dentro del parámetro común, llamo a esta función así estado, y la empaque y la
empaque en esta ventana. Entonces voy a configurar este archivo y ejecutar este código
en mi terminal. Hasta ejecutar este código, aquí
puedes ver la ventana. Entonces si hago clic en este
botón, marque Estado, como puede ver, se imprime deschaked porque desmarco esta
casilla de verificación Pero esta vez si marco esta casilla y luego presiono el botón, marque Estado, esta
vez imprima marcada. Ahora hablemos de los parámetros
importantes que vienen con este asistente. Si hablo de su parámetro, viene con texto y
ya lo sabemos. Tengo que mostrar la etiqueta
junto a la casilla de verificación. Esto viene variable, y
conocemos el uso de la variable. Se va a definir
el estado de casilla de verificación. Este valor de encendido y valor desactivado en
valor
valor cuando se marca, y el valor predeterminado es uno de valor
cuando el valor no tiene forma y
su valor predeterminado es cero Por defecto, va
a mostrar uno y cero, pero puedes cambiar las opciones. Déjame mostrarte. Así que de nuevo, estoy de vuelta a mi código de
Visual Studio, y creo otro archivo
Python significa hacer Pi. Ahora voy a
definir una variable que va a tener
un estado predeterminado. Y nuestra variable es agiver
y es una variable de cadena. Y por defecto, dije Valor, no, y es un valor por defecto. Y ahora voy a
crear un botón de verificación sobre Valu y de parámetro de valor. Y voy a pasar
valor sí y de valor, no. Entonces aquí creo el botón
check y configuro este botón check en
esta variable llamada agree. Y presiono este botón de verificación en una ventana raíz y
digo este texto, estoy de acuerdo con este término, y luego configuro la
variable agriY como pueden ver, es variable de
cadena Ahora el valor se convierte en sí. Aquí dije el valor
sí y de valor, no. Si seleccionamos la casilla de verificación, va a pasar sí a
esta variable en todas partes, y si la desseleccionamos, entonces va a pasar no, y es el valor predeterminado Entonces necesitamos crear una
función que vaya a imprimir el valor
en nuestro terminal. Después de eso, voy
a definir una función. Y nuestro
nombre de función es show state. Se va a imprimir
el valor actual y aquí se obtiene el
valor usando la puerta Mthod Puerta de punto Egywere.
A partir de esta variable, obtenemos el resultado. Después de eso, necesitamos
definir un botón, ese botón va a
activar la función. Entonces aquí defino el botón. Ese botón va a activar
esta función show state, y nuestro texto del botón
es check state. Dentro de este botón,
llamaremos a la función que va a imprimir el
valor actual, show state. Te levantas para configurar este archivo, si ejecuto este código en mi aminal ahora si desmarco esta
casilla de verificación y hago clic en verificar estado, se imprime, el valor actual es no porque es
el valor predeterminado Pero si marco esta casilla de verificación y luego
hago clic en este botón, entonces ahora puedes verlo
imprimir valor actual, sí Si lo vuelvo a hacer clic,
otra vez, se imprime sí. Ese es el uso del valor y del parámetro de valor en el botón de verificación. Ahora déjame mostrarte
otro ejemplo con botón de verificación múltiple. Entonces esta es nuestra
ventana básica simple, y esta vez, voy a
darte el ejemplo del botón de verificación múltiple. Al principio, necesitamos definir las variables que van
a sostener el estado. Entonces aquí, voy a definir
total de tres variables. Y además, voy a establecer
el valor por defecto, no. Estas son las tres
variables, Python ware, Java ware y C más Y.
Y estas son todas variables de
cadena. Y por defecto en
su valor es no. Y para cada una de las variables, voy a crear
el botón check. Al principio, voy a
crear el botón check para Python v. Botón Check, y lo pruebo en una ventana raíz, y nuestro texto es Python. Entonces muy bien igual a Python ware y el valor es
sí, y Ovalue es no Y aquí usamos el método de empaque
para empacar este botón de verificación. Y elijo lado oeste lado. Quiero decir, el lado izquierdo, el lado izquierdo de esta ventana. la misma manera,
necesitamos crear
otros dos botones de verificación. Entonces aquí defino
otros dos botones de verificación para las estrellas Java y Sitlus Después de eso, necesitamos crear una función que vaya a
mostrar todos los identificadores del botón de verificación. Entonces aquí voy a
definir una función llamada show selected. Y primero, va
a imprimir este mensaje. ¿Te gustan estos idiomas? Entonces les va a
imprimir sus mares. Si te gusta,
va a imprimir, y si no te gusta,
va a imprimir, no. Entonces necesitamos crear un botón. Van a
activar esta función. Éste. Yo iría a activar
esta función mostrar seleccionarlo, y voy a configurar este archivo. Después de configurar este archivo, si yo
un thecde en mi terminal, aquí puedes ver las opciones, Python Java y C plus plus A partir de estas tres opciones,
voy a comprobar Java. No me gusta Python
y C plus plus. Entonces si hago clic en este
botón, verifico selección, como puedes ver en mi terminal, primero lo imprimo, ¿te
gustan estos idiomas? Para Python, es un no. Para Java, es sí, y para C plus plus,
nuevamente, imprime, no. Y si reviso todos los valores, entonces presiono el botón. Ahora todo el estatus se convierte en sí. Así es como podemos usar
múltiples botones de verificación. Espero que ahora el concepto
sea claro para ti. Y si hablo de
sus casos de uso, se usa para términos y
condiciones acordados seleccionando
característica o preferencias, configurando alternas
notificación de deslizamiento, modo dardo, cociente de opción
múltiple con respuesta
múltiple correcta, etcétera Estos son el uso principal del asistente
de botón de verificación. Espero que ahora te quede claro. Así que gracias por
ver este video, Syuned para nuestro próximo estudio
18. Widget de botón de radio Tkinter: Hola, es bueno
verte de vuelta. Una vez más, estoy de vuelta con un nuevo asistente de Kinter relacionado con
Tutorial Hoy en este tutorial, vamos a hablar sobre el asistente de botones
KinterRadio El botón de radio
en Kinter permite al usuario seleccionar una
opción de un grupo Es como
botones de radio en formas de tabla. Si hablo de su característica clave, se utiliza cuando uno el usuario para elegir sólo una opción
de opción múltiple. Recuerda, todos los botones de
radio relacionados comparten la misma variable. Por lo general, usamos cadena de otra manera invariable y cada botón tiene un valor único que se almacena en esa
variable cuando se selecciona Para entenderlo con claridad,
estudiemos práctico. Como puedes ver en mi editor de código de
Visual Studio, creo un
archivo Python main dot pi y creo el
layout básico de Kindle. Ahora voy a definir una variable de cadena
y nuestra variable es Zenker Zender igual
a una variable de cadena Después de eso, voy a establecer un valor predeterminado para
esta variable de cadena. Para establecer el valor por defecto en esta variable,
utilizamos el método set. Entonces Ty Zenda puso
dentro de la ronda Bess, yo uso este pasado valor
predeterminado masculino, y luego voy a
crear los botones de radio Quiero darle al usuario la opción
múltiple para
seleccionar cualquiera de ellos. Nuestro primer botón de radio
es para valor masculino. Para crear el botón de radio, primero en el tipo botón de radio, luego dentro de las rondas para pasar la ventana
en nuestro caso root, luego se puede establecer el texto
para este botón de radio. Es un texto nivelado de
este botón de radio. Entonces hay que
definir la variable. En nuestro caso, variable igual a Zender también decimos el valor de este
botón de radio, que es masculino Con eso, empaco este botón de
radio en nuestra ventana. Si seleccionamos este botón de radio, va a establecer el
valor a esta variable. Por deiful se puede ver,
utilizamos el valor masculino,
el mismo Ahora voy a crear otro botón de
radio para femenino. Como te dije antes, todos los botones de radio comparten
la misma variable. En nuestro caso, Zender y cada
botón tiene un valor único. En nuestro caso, masculino y femenino, y que se almacena en una variable
cuando se seleccionan. Ahora quiero pintar el valor
seleccionado en nuestra terminal. Para eso, voy
a definir una función y nuestra función N
es mostrar selección. Dentro de los vestidos redondos aquí, imprimo seleccionado Zender atacma Entonces obtengo el valor de esta variable usando el método Gate. Además, para activar la función, necesitamos crear un botón. Entonces aquí, voy
a crear un botón, y voy a
colocar el botón en una ventana raíz y nuestro
botón toma un submit. Y aquí, usando parámetro
común, llamamos a esta función, mostrar selección, y empaco
este botón en nuestra ventana. Entonces si configuro este archivo y ejecuto
este código en nuestro terminal, ejecuto este código en nuestro terminal, se
puede ver que proporciona
dos botones de radio. Por defecto selecciona
el botón de radio macho. Si selecciono
botón de radio hembra y luego presiono enviar, se
puede ver el resultado
seleccionado Zinder hembra la misma manera, si selecciono el botón de radio macho y
presiono el botón de envío, ahora se imprime seleccionó
Zinder macho Ahora hablemos de los parámetros
importantes. Si hablo de su parámetro, viene con un total de
seis parámetros, como variable de texto, valor, comando, estado
e indicador encendido. Usando comando, podemos llamar a una función cuando se cambia la
selección. Usando el estado, podemos desactivar el botón de otro modo botón
normal. Usando indicador activado, se usa
básicamente para EI avanzado. Ahora, déjame mostrarte otro ejemplo donde
te
voy a mostrar cómo podemos usar múltiples opciones con
una variable compartida. Usando una sola variable, quiero proporcionar
total de tres opciones, déjame mostrarte cómo. Así que de nuevo, estoy de vuelta a mis
visitas a tu editor de código, y aquí creo otro archivo
Python manto punto Pi Ahora
te voy a mostrar opción múltiple con la variable compartida. Entonces primero, voy a definir una variable y voy a establecer un valor por defecto y voy a establecer un
valor por defecto para esta variable. Entonces nuestro nombre de variable es choice, y es un string ware, y establecí un valor predeterminado,
que es la opción uno. Después de eso, voy a crear un
total de tres botones de radio. Aquí creo total
tres botón de radio con la misma opción de variable, y proporcionamos diferente
valor opción uno, opción dos, y opción tres. Si quieres imprimir el valor, necesitas crear una función para imprimir el valor
en tu terminal. Creo esta función y obtengo el valor de esta opción de
variable. Ahora necesitamos
crear un botón que vaya a llamar a la función. Aquí creo este botón. Ahora puedes notar que tenemos un total tres botones de radio
usando la misma variable, y así podemos proporcionar total de
tres opciones para eso. Antes de establecer este
archivo, voy
a cambiar la declaración de impresión. Voy a hacer que se seleccione
final a opción seleccionada. Voy a establecer este
archivo. Después de configurar este archivo, si ejecuto este código
en una terminal, aquí puedes ver las opciones. Si **** la opción dos y
presiono el botón Enviar, puede ver la
opción seleccionada la opción dos. Un dímero si selecciono
el tercero, luego imprima la
opción seleccionada opción tres Para un DIMO funciona
para la primera opción. Ahora puede que tenga
dudas, ¿cuál es el uso de usted puede crear un selector de
tamaño de pizza usándolo Déjame mostrarte la
demostración de ello. En este ejemplo, me gustaría
darle el caso de uso práctico botón
de radio múltiple. Aquí vamos a crear
un selector de tamaño de pizza. Primero, voy a
definir una variable y nuestro nombre de variable es tamaño de pizza. Igual a que es una variable de cadena. Después de eso, quiero imprimir una etiqueta aquí voy a imprimir una etiqueta y nuestro texto de etiqueta es seleccionar tamaño de pizza
y cantar Método de empaque, empaco esta etiqueta
en esta ventana. Después de eso, voy a
crear múltiples botones de radio. Aquí creo los
múltiples radiotanes para tamaño pequeño, mediano y tamaño grande, y utilizo
el mismo tamaño de pizza variable
para almacenar el valor seleccionado Después de eso, como
saben, necesitamos
crear un necesitamos crear una función que vaya a imprimir el resultado
en nuestro terminal. Aquí voy a
escribir dap show size, print selected size
pizza size dot Gate y va a obtener el valor
actual de
esta variable. Además, es necesario
crear un botón que va a
activar esta función. Así que aquí creo el
botón que va a comandar esta
función muestra el tamaño. Y aquí paso el texto y para el texto del
botón, usa Wade ahora Hasta ejecutar este código
en nuestra terminal, aquí puedes ver la ventana. Por defecto,
selecciona todos los atos porque no establecemos el valor
predeterminado para eso. Por eso selecciona pequeño, mediano grande, todo ello. Ahora quiero seleccionar solo la opción grande y
selecciono una grande. Arriba seleccionar opción grande, si presiono en Agua ahora, ahora, como puedes ver en
nuestra impresión terminal, seleccionarlo talla grande. Entonces ese es uno de los usos
de radiobton kinder. Para crear el
radiobden solo en botón
de radio tipo y dentro de él, es necesario pasar el parámetro Después de eso, necesitas
empacar la radiobden. Si hablo de ello casos de uso
común, se utiliza para detectar género, grupo de
edad o selección de
reglas de usuario. También se utiliza para cuestionario
o respuesta única correcta. También se utiliza para selectores de temas como la luz oscura y el sistema También, podemos usarlo para la selección de
idiomas. Espero que ahora te quede claro, cuál es el uso del asistente de botón de
radio. Gracias por ver este video Sdune para el siguiente tutorial
19. Widget de caja de listas Tkinter: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial relacionado Kiner Advanced Wizard Hoy en este tutorial, vamos a aprender
Kiner Liz Box Wizard El asistente de cuadro de lista en Kinder se utiliza para
mostrar una lista de elementos Básicamente, permite al usuario seleccionar una o más opciones. Si hablo de su característica clave, puedes permitir una selección única
o múltiple. ítem se puede agregar o quitar o modificar y es útil
para mostrar opciones, menú, archivos, etcétera Sin hablar demasiado, déjame mostrarte un ejemplo. Entonces como puedes ver, estamos en mi editor de código de salt studio y ya
creo una
ventana básica usando inter, al principio, voy
a crear un ist box. Para crear un list box, voy a tomar una variable, que es LB, menos box. List box igual a, necesitamos escribir List box, luego dentro del cess redondo, necesitamos pasar
el nombre de la ventana en que ventana vamos a poner el List box en nuestro caso root. Después de eso, uno por uno, voy a insertar los datos. Primero, voy a
insertar su número de índice, después voy a
insertar los datos reales. Aquí, voy a
insertar un dato. escriba nuestra variable
B list box dot insert dentro de la ronda ***** primero, necesitamos proporcionar el
número de índice de este list box Entonces tenemos que
aportar el valor. En nuestro caso, Python. De la misma manera, voy
a agregar tres más como datos. Así que aquí para pasar
Java en el número dos, C plus plus en el número tres, y JavaScript en el número cuatro. Después de eso, cree el list box, también en empacar el list box. Así tipo b Las caja punto PAC. Ahora, después de configurar este archivo, si ejecuto este código
en mi terminal, déjame mostrarte así es como se ve
nuestro list box. Ahora vamos a crear una función
que va a imprimir el
elemento seleccionado de la lista de acti en nuestra terminal Aquí, voy a definir una función y nuestro
nombre de función es mostrar selección. Luego dentro de esta función, necesitamos identificar
el ítem seleccionado. Quiero decir qué
ítem está activo. Para eso, voy
a definir una variable llamada seleccionada luego
desde el list box, obtenemos el ítem activado Supongamos que si hago
clic en C plus plus, entonces se ha vuelto activo. Se va a seleccionar
el elemento activo. Después de eso, voy a
imprimir el valor del ítem activo. Aquí voy a escribir, imprimir, seleccionarlo, y voy a
pasar la variable, seleccionarla. Entonces sólo para crear un botón que vaya a activar
la función. Aquí voy a crear un
botón y lo voy a poner en una ventana raíz y nuestro
botón se lleva el show. Después de eso, si subo
este archivo y ejecuto este código en mi arminal y selecciono uno de los elementos de la
lista como Java y hago clic en Mostrar Ahora se puede ver
terminalmente impreso. Seleccionado es Java. Al mismo si selecciono Java
Script y luego presiono show, ahora puedes verlo imprimir,
seleccionado es JavaScript. Ahora, hablemos del parámetro que podemos
usar con este asistente. Estos son los
parámetros que podemos usar con este asistente,
como la altura. Van a mostrar el
número de filas visibles, luego seleccionar el modo.
Es el importante. Y viene con varios modos de
selección como navegación
simple,
múltiple o extender. Entonces tenemos fondo
y color de foro. A continuación tenemos selección de exportación. Si hablo de opciones de modo de
selección de list box, el modo de selección determina
cuántos elementos
puede seleccionar el usuario y
cómo puede seleccionarlos. Si hablo de los modos, viene con cuatro modos
diferentes, single browse,
multiple y extend. Si hablo de su comportamiento,
soltero, usuario puede seleccionar
solo un elemento por kiki Navegar. Al igual que solo, permite hacer clic en arrastrar o
navegar por la selección. Múltiple. El usuario puede
seleccionar varios elementos, haciendo clic en cada uno por separado. Extender. El usuario puede seleccionar rangos
usando turno y control. Ya estamos familiarizados con single. Es diferido uno, pero ahora te voy a mostrar opción de modo de selección
múltiple Volvamos al editor de código. Nuevamente, vuelvo a mi comedor de código de
Visual Studio y creo una ventana básica
simple Al principio, voy
a crear un list box, LB LB igual a list box y
voy a poner el menos
box en una ventana raíz y aquí uso el
modo de selección múltiple. Ahora podemos seleccionar
varios elementos de la lista. Ahora voy a
definir una matriz, lo contrario una lista, que va
a contener múltiples idiomas. Voy a definir una variable lenguajes e insertar esta lista, aquí paso múltiples lenguajes de
programación
nombre como Python,
Java, C plus plus,
Java Sweep, Go. Ahora, tenemos que poner nombre de
todos los lenguajes de programación en esta casilla mínima. Para eso, vamos
a usar un bucle de cuatro. Para para Lang en idiomas, luego inserte el bucle Fur aquí, usamos el método insert Menos punto de caja Insertar, primero, necesitamos definir el índice, y luego necesitamos
definir el idioma. Aquí, N representa
un índice especial. Eso significa agregar al final de la lista y representar
el idioma actual. Y este método va a agregar
los elementos de la lista uno por uno en este list box con
su número de índice. Después de eso, voy
a etiquetar este list box, b dot pack siguiente, necesitamos crear
una función que vaya a imprimir los elementos
seleccionados. Para eso, voy
a definir una función, y nuestro nombre de función
es show selected. Entonces dentro de esta función, necesitamos extraer los índices. Para eso, voy a definir
una variable llamada
indices, Indices igual a listbox
dot car selection El método de selección de autos
escribió una tupla de índices de los ítems
seleccionados actualmente A continuación, usando un bucle de cuatro, necesitamos extraer
los elementos seleccionados. Voy a definir una
variable seleccionada elementos iguales a dentro de
la resis cuadrada. Luego dentro de la
resis cuadrada para I en índices, box dot gate I. Básicamente, es una
comprensión de lista utilizada para obtener el valor real de los elementos seleccionados del cuadro
de lista Kinker Supongamos que los usuarios seleccionan
Python C plus go. En ese caso, esto va
a almacenar el valor de tres, Python C plus plus, ir y devolver el resultado. Después de eso, necesitamos imprimir los artículos seleccionados
en nuestra terminal. Entonces utilizo esta declaración impresa. Ahora necesitamos un botón que vaya
a activar esta función. Yo creo este botón y
voy a configurar este archivo. Después de establecer este archivo, si ejecuto
este código en mi carvinal, ahora somos capaces de
seleccionar varios elementos Supongamos que quiero seleccionar go. Con eso, quiero
seleccionar Java y Python. Ahora, si alabo botón de enviar, ahora puedes ver que seleccionaste
Python Java y te vas. Entonces así es como funcionó la
selección múltiple, y ahora decides que
quieres pre seleccionar los ids. Entonces puedes hacerlo usando el método de conjunto de
selección. Déjame mostrarte.
Supongamos Por defecto, quieres seleccionar
Python y C plus plus. Para ello, es necesario utilizar lista Arcos método de conjunto de
selección de puntos, y luego va
a pasar el
número de índice , algo así. Aquí selecciono
índice cero significa Python. También selecciono Índice número
dos significa C más más. Usando este método, conjunto
de selección. Ahora bien, si configuro este archivo y
ejecuto este código en mi terminal, ahora puedes notar que ya selecciono Python
y C plus plus. Ahora si hago clic en
el botón enviar, puedes ver en mi terminal, seleccionas Python
y C plus plus. Además, puedes seleccionar
otras opciones con eso. Supongamos que quiero
SELETG y Java. Entonces voy a hacer clic de nuevo en
el botón de enviar. Entonces otra vez, imprime
los ítems seleccionados, Python, Java, C plus plus, go. Así es como podemos usar la
selección múltiple con List box. Ahora hablemos de cómo
podemos agregar elementos a una caja mínima, cómo podemos eliminar
elementos y cómo
podemos eliminar todos los
elementos juntos. Entonces como pueden ver, aquí creo una ventana sencilla y él
creo un Cuadro de lista. En este cuadro de lista, tenemos
dos ítems, Python y Java. Si ejecuto este código
en mi terminal, puedes ver el resultado. En nuestro list box, tenemos
dos item, Python y Java. Ahora, voy a crear una
función que va a agregar, van a agregar un nuevo elemento de
lista a esta lista. Pero antes necesitamos
crear campo de entrada, van a tomar la entrada. Aquí creo entrada de campo de entrada, y la colocamos en una ventana raíz y empacamos este campo de entrada. A continuación, voy a
definir una función y nuestro nombre de función es Dave en IT. Entonces dentro de esta
función, quiero
extraer el valor
de esta entrada. Dentro de esta función,
voy a definir una variable llamada IM. Y artículo igual a puerta
de punto de entrada. Entonces, sea cual sea el valor que
pases en este campo de entrada, podemos almacenar este
elemento variable dentro de esta función. A continuación, necesitamos
establecer una condición IP. Si nuestro campo de entrada no está vacío, suma tipo I item, si no hay
valor en este ítem, entonces dentro de esta condición IP, entonces quiero insertar el
ítem en el list box. Para eso en el método de inserción de punto
de cuadro de lista de tipo. Primero en definir el final
y luego definir el ítem. E significa número de índice. Hasta insertar el elemento
en este cuadro de lista, también único para eliminar
el campo de entrada. Tenemos que despejar
el campo de entrada. Para eso, voy a escribir punto de
entrada D dentro de
la ronda versus, quiero eliminar carácter
del índice cero para terminar. Recuerde, en lugar de usar el número de
índice, aquí usamos A.
Básicamente A representan constante. Eso significa anexar
en el último índice. Entonces, sea cual sea el valor
que pasemos, va a anexar el
valor en el último índice Entonces después de eso, necesitamos
crear un botón. Necesitamos crear un botón que vaya a activar
la función. Entonces aquí voy a
definir el botón,
botón y lo pongo en una ventana raíz y nuestro texto de
botón está en, y llamo a esta función en
ítem, y empaco este botón. Después de configurar este archivo, si
ejecuto este código en mi terminal, ahora puedes ver que
hay una hazaña de entrada Ahora quiero agregar otro lenguaje de
programación, vaya y luego voy
a presionar el botón Agregar. Después de presionar el botón Agregar, ahora puedes ver el cuadro Lista, agrega el
idioma go al final. Y de la misma manera,
puedes agregar cualquier cosa. Supongamos que esta vez quiero
agregar C plus plus, C plus plus. Si presiono el botón Agregar, como puedes verlo
agrego C plus plus. Así es como podemos agregar elemento
de lista a nuestro cuadro de lista. Ahora déjame mostrarte cómo podemos eliminar elementos de la lista
de nuestro cuadro de lista. Pero pod voy a duplicar esta línea y en vez
de usar Java, voy a agregar C plus plus. Entonces, por defecto, va a agregar tres ítems en nuestro list box. Ahora para eliminar los elementos, necesitamos crear una función, y nuestro nombre de función
es eliminar seleccionado. Aquí voy a definir la
función eliminar seleccionada. Después dentro de esta función
única para seleccionar los elementos. Defino una variable
llamada selected y
selected igual a listbox
dot car selection Como te dije antes, escribió un tapel
de indicus seleccionado Si selecciono C
plus y Python, entonces va
a crear un tapel y almacenarlo en esta variable Después de eso, voy
a usar un bucle de cuatro para I en invertido seleccionado, luego dentro de este bucle de cuatro, quiero borrar el elemento de la lista. Listar límites eliminar método dentro de las redondeces
que proporciono I. Ahora la pregunta es por
qué uso método invertido Básicamente, se utiliza para
evitar el desplazamiento del índice. Esto es muy crucial porque
eliminar desde el final evita estropear la
posición de índice de los elementos restantes A continuación, necesitamos
crear un botón. Eso va a desencadenar esta
función eliminar seleccionada. Aquí voy a
definir el botón. Eliminar seleccionado, y
activó esta función, eliminar seleccionado. Y
voy a poner este archivo. Después de configurar este archivo,
si ejecuto este código en mi terminal y selecciono cualquiera de los elementos como Java
y prese eliminar seleccionado, como puede ver, elimina
el elemento del cuadro de lista Además, si quieres
agregar el ítem, simplemente escribe JAVA y agrega
y luego patea el botón. Y nuevamente, agregue el Ib en el último al final
del cuadro de lista. Ahora déjame mostrarte cómo
podemos eliminar todo el ítem a la vez, cómo podemos borrar la
casilla menos. Y es muy fácil. Sólo para definir una función y
nuestro nombre de función es ARO. Y luego dentro de esta función, listbox dot Delete primero, necesitas definir
el número
de índice desde donde quieres eliminar Paso cero porque quiero
borrar todo. Empecé desde el índice
cero y luego hay
que pasar la
posición final de esta lista. Después de eso, necesitas crear un botón que va a
llamar a esta función clara. Yo creo este botón y eso va a llamar a
la función KR. Entonces preestablezca este archivo
si ejecuto este código en mi terminal y hago
clic en el botón KRL, va a borrar todos los
valores del list box Ahora podemos
agregar un nuevo elemento de la lista. También puedes eliminar
este elemento de la lista. También puedes borrar
el elemento de la lista. Ahora el concepto
es claro para ti. Y si hablamos de los casos de uso
común de List box, se utiliza para seleccionar
varios archivos. Elija elementos de una larga lista sin entradas
de múltiples
opciones, selector de contenido
dinamo y menú Entonces espero que ahora esté
claro para usted, podemos usar el Asistente de cuadro de lista. Así que gracias por
ver este video Syuned para el siguiente tutorial
20. Combobox (a través de ttk) en Tkinter: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta con
otro tutorial relacionado con Kiner. Hoy en este tutorial,
vamos a aprender otro asistente y nuestro nombre de
asistente es Combo Box. La pregunta es
¿qué es Combo Box? El Kitk punto comi box es un asistente de lista desplegable
del Yo quiero decirles Cinter. Permite al usuario
elegir un solo elemento de una
lista predefinida de opciones. Es bastante similar
con timus select tag. Básicamente,
te da una opción desplegable, y para usar Combi box, necesitas importar el
módulo Combox de TTk de Tinter Si hablamos de
su característica clave, desplegable con autocompletar Puede ser editable o de
solo lectura proviene
del módulo TiTiK, por lo que tiene un aspecto moderno Ahora, déjame mostrarte la sintaxis básica de cómo
podemos crear una caja Combi. Al principio, necesitamos
importar Tiki. Desde Kiner, quiero
importar el módulo Tik. A continuación, necesitamos
importar caja Combi. Entonces necesitamos importarlo
del módulo quinta dot Kitk de quinta dot TK,
importar caja Combi Después de Importar nuestros módulos
necesarios, voy a crear
una ventana raíz. Entonces escriba root igual a TK. Aquí utilizo la clase TK para
crear una variable de instancia. A continuación, voy a
crear un cuadro combinado. Para eso, voy a definir una variable y nuestro nombre de
variable es combo. Comgo igual a aquí, quiero crear un cuadro combinado. Dentro de este cuadro combinado,
primero Into type combo box, luego dentro del proceso round, necesitamos proporcionar en qué ventana vamos
a poner el combo box. Después de eso, para igualar
el cuadro combinado vds. El valor es igual a I lista, y aquí paso Python,
Java, Citos y JavaSastre Después de eso, necesitamos empacar necesitamos empacar
esta caja combo. Combo dot pack,
entonces necesitamos ejecutar el bucle principal Sght root, dot dot Minus I' vamos a
crear un cuadro combinado básico Si yo este código en mi terminal, aquí se puede ver el resultado. Proporciona una opción desplegable. Se puede ver el erosign
Si hago clic en él, se pueden
ver los valores, Python, Java, citrus
dus y JavaScript. Se trata de una caja combo básica y
sencilla. Desde aquí, puede
seleccionar cualquier wd. A continuación, quiero imprimir
el valor del cuadro combinado en nuestra ventana con la ayuda
de level. Entonces hagámoslo. Entonces voy a
asignarle título. Yo creo la variable de instancia, voy a crear un titulo
titulo Comma bonks demo. Además, voy a
agregar ittle padding cuando empaque esta caja combo Entonces pad Y igual a TM. Y si quieres asignar
una selección por defecto, supongamos que en nuestro caso Java, quiero seleccionar
por defecto por defecto,
quiero seleccionar Java. En ese caso, es necesario escribir combo dot, Cgo dot current Actual dentro del vestido redondo, necesitas pasar necesitas
pasar el número de índice. Aquí, voy a pasar una. Se va a seleccionar
el primer índice, y como se puede ver en
un índice, tenemos Java. Por defecto, va a seleccionar el Java. Voy
a sub este cinco. Entonces voy a crear una etiqueta
vacía en esa posición. Nivel igual a nivel, quiero colocar este
nivel en una ventana raíz, y como pueden ver, Bdfaul
el nivel está vacío No proporcionamos ningún
texto a esta etiqueta, y luego empaco esta etiqueta. Ahora después de crear la etiqueta, necesitamos poner el
valor en esta etiqueta. Para eso, necesitamos
crear una función. Aquí voy a definir una
función y nuestro nombre de función es y nuestro
nombre de función es mostrar seleccionado. Luego dentro de esta
función al principio, necesitamos obtener el valor
de este cuadro combinado. Para eso, voy a definir
una variable llamada seleccionada
y seleccionada igual al método
Combo dot Gate. Se va a obtener el
valor seleccionado de este cuadro combinado. Después de eso, necesitamos configurar esta etiqueta porque necesitamos
poner la
opción seleccionada a esta etiqueta. Para ello, necesitamos
usar el método config, label dot config
dentro del receso de ejecución, aquí vamos a seleccionar el parámetro, en qué parámetro
vamos a configurar. En nuestro caso, texto, igual a aquí, usamos Estring. Entonces tecleamos, tú lo seleccionas
y dentro del receso del carro, pasamos el valor. El valor que obtenemos
del cuadro combinado. Voy a sub este archivo.
A continuación, necesitamos crear un botón que va a activar esta función de mostrar seleccionada. Aquí defino el botón, botón igual al botón raíz, y pruebo este botón
en una ventana raíz y selecciono pruebo este
botón en una ventana raíz, luego dije el
texto del botón, mostrar seleccionado. Después de eso, utilizo comando. Después de eso, utilizo parámetro
común y en este parámetro común llamamos a
la función show selected. Después empaco este botón y
asigno un poco de relleno en YxS. Ahora antes de que establezcan este archivo, puedes ver algunas
advertencias porque necesitamos importar
todo desde head. Voy a importar estrella
de Kiner input star. También, importo cuadro combinado. Si configuro este archivo,
resuelve el problema. Ahora después de configurar este
archivo, si ejecuto este código en mi terminal, déjame mostrarte. Después de ejecutar este
código en mi terminal, es como se ve nuestro cuadro
combinado, y este es nuestro
botón, mostrar seleccionar. Entonces por defecto, como te dije, vas a seleccionar Java. Ahora voy a
seleccionar C plus plus. Arriba seleccione C plus plus, si hago clic en este botón, ahora lo puedes ver impreso, seleccionaste C plus plus en nuestra ventana con
la ayuda de etiqueta. la misma manera,
puedes seleccionar cualquier valor, y si hago clic en este botón, se imprime seleccionas Python. Es el ejemplo con actualización de
etiqueta en cuadro combinado. Espero que ahora te quede claro. Si hablo de
cuadro combinado opción común, es valor, estado, corriente, puerta, y set. Ahora déjenme mostrarles
ejemplo con el estado. Usando state, podemos configurarlo en solo
lectura para evitar que se escriba. Si configuro este archivo
y ejecuto este código, este es el código anterior, y si escribo manualmente algo en el
cuadro combinado, sí, puedes. Supongamos que aquí estoy tipo,
vaya, vaya idioma. Y como puedes ver en nuestra lista, no
tenemos ir idioma. Pero si alabo, show seleccionado, como se puede ver
impreso en nuestra etiqueta, seleccionado ir, pero en nuestras opciones, no
tenemos ir idioma. Para prevenirlos,
puede utilizar la opción Estado. Déjame mostrarte cómo.
¿Dónde creamos el cuadro combinado? Después de pasar los valores,
necesitamos usar coma. Entonces, necesitamos usar este
parámetro, state, de solo lectura. Si configuro este archivo y ejecuto
este código en mi terminal, ahora en nuestra casilla de coma, no
podemos
escribir nada No se permite escribir
nada en nuestro cuadro combinado. Ahora solo permite
la selección a partir de los valores predefinidos para
evitar la entrada no válida. Espero que ahora el concepto
sea claro para ti, ¿qué es el cuadro combinado?
¿Qué es el cuadro combinado? Si hablo de sus casos de uso, es útil seleccionar
Ctrl o idioma Cambio de tema o modo y opción de ajuste
desplegable. Recuerda, si quieres
poner un nuevo valor a esta lista en este cuadro combinado, puedes hacerlo manualmente. Solo necesitas usar el método de
conjunto de puntos combo método de conjunto de puntos. Usándolo, sea cual sea el
valor que pasemos, lo va a poner en esta lista. Déjame mostrarte
la demostración. Después de seleccionar el actual, si configuro un nuevo valor
a este cuadro combinado, en nuestro caso, Combo dot set go. Ahora voy a agregar go
language a estos valores. Yo configuro este archivo, si
ejecuto este código en mi terminal y si
abro mi opción desplegable, aquí puedes ver la opción ir Y si tricon show selecciono, ahora lo puedes ver
impreso, lo seleccionas ir Espero que ahora el concepto
sea claro para ti cómo
podemos usar Combo Box y cuál
es el uso de Combo box. Gracias por ver este video, Syuned por nuestro próximo tutorial
21. Caja espininacea Tkinter: widget: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial y hoy en este tutorial, vamos a
aprender un nuevo mago. Y hoy, vamos a
aprender Kiner spin box wizard. Este asistente de caja de giro
en Kinter Lake usuario, elija entre un rango de valores usando pequeño botón de flecha arriba
y abajo A menudo se usa cuando la entrada es numérica o limitada
para especificar la acción. Si hablamos de
su característica clave, es permitir la
entrada incremental usando flechas, excepto solo valores
dentro del rango definido. O un conjunto fijo de elección, también evitar entradas no válidas. Déjame mostrarte demostración
lo que es la caja de giro. Estamos en mis viseras editor de
código de estudio y cómo crear una
ventana básica simple usando Kiner y además asigno un ejemplo de cuadro de giro de
título Después de eso, voy
a crear una caja de giro. Para eso, voy a definir una variable y nuestra
variable es spin. Girar igual a donde
voy a crear una caja de giro. Luego dentro de las llaves
redondas, primero, necesitamos proporcionar
el nombre de la ventana donde vamos a
colocar la caja de giro Después de eso, tenemos que pasar
de valor a valor. Usando el parámetro de underscoe, podemos definir desde
donde nuestro valor va a comenzar y
usando dos parámetros, podemos establecer el límite de Entonces necesitamos empacar
la variable spin. I tipo spin dot pack. Dentro de las
prensas redondas, asigno algunos acolchados en Xxs y YxS Después de eso, si configuro este archivo y undiscde
en mi terminal, este es nuestro spin box parece Como puedes ver, por defecto, imprime el valor cero más bajo, y usando esta flecha, puedes incrementar el valor, lo contrario decrementar el Supongamos que quiero
incrementar el valor, así presiono flecha hacia arriba y podemos incrementar hasta cambiar porque aquí
dijimos el límite Ahora, déjame mostrarte
otro ejemplo. Aquí, voy a
pasar el valor personalizado. Vamos a seleccionar el
día de la semana. Para eso, voy a definir
otra variable llamada días y va
a contener una tupla Dentro de este tupel vamos
a pasar todo el nombre del día. Déjame mostrarte cómo. Él
Creé días tuplas y sostengo todo el Danim
desde una k Después de eso,
necesitamos crear otro giro. necesitamos crear otro giro Entonces voy a escribir giro dos es giro número
dos, igual a. Nuevamente, necesitamos
definir caja de giro. Entonces mandas los
bruss redondos voy a pasarlo en una raíz de ventana raíz, luego coma superior, valores, y aquí voy a
ascender valores los días En lugar de valor dinámico
aquí utilizamos valores personalizados. Ahora podemos seleccionar valor
entre lunes a domingo. Después de eso, voy
a empacar la caja de giro. Drive spin spin two dot
PAC Math food, pack. Después dentro de las desnudistas, voy a asignarle
algún relleno, así que copio este Value paddix y
PaUI y lo voy
a Voy a sub este archivo.
Después de sub este archivo, si ejecuto este código
en mi terminal, ahora puedes notar
otra caja de giro. Pero aquí podemos
seleccionar sólo los días. Los días que pasamos
en esta variable. Y si hablamos de
sus opciones útiles, déjame mostrarte que vienen con múltiples parámetros
desde underscoe hasta comandos de incremento de valores
con estado Ahora, déjame
mostrarte otro ejemplo con función de devolución Vamos a usar
este comando de parámetro. Volvamos al código de visa
studio. Entonces primero, voy a crear un nuevo Python Pi main two dot pi. Después voy a
importar el intermódulo y voy a crear
el Window básico Aquí creo la ventana básica, también necesitamos
ejecutar el bucle principal. Punto raíz, bucle medio de punto. Aquí voy a crear
otro cuadro de giro, que va a llamar a una función con la ayuda
del parámetro de comando. Entonces aquí creo este
cuadro de giro y lo colocamos en una ventana raíz y establecemos el valor 1-10 usando parámetro de comando, llamamos a una función sobre el cambio. No definimos la función, por
eso muestra la advertencia. Después de eso, empacamos esta velocidad. Entonces voy a crear
la función on change. Aquí, voy a escribir Dave sobre el cambio dentro de
los versos redondos. No voy a pasar nada. Entonces dentro de la función de cambio, por ahora, voy a escribir pass. A continuación, voy a crear una
etiqueta antes de esta caja de pines. Aquí voy a
definir un nivel de etiqueta igual a nivel y establecemos este
nivel en una variable de nivel. Dentro de este nivel t
tecleamos valor actual. Voy al
valor actual en nuestra ventana. A continuación, tenemos que trabajar
en la función de cambio. Al principio, necesitamos
obtener el valor de
esta caja de pines y también en almacenar
el valor en una variable. Para eso, voy a
definir una variable que es valor
seleccionado y el
valor seleccionado igual a spin dot gate. Usando el método de puerta, obtenemos
el valor de esta caja de pines. Obtenemos el valor
de esta caja de pines. Después de eso, quiero imprimir el valor de la puerta en nuestra terminal. Aquí voy a escribir
una declaración de impresión,
imprimir dentro de los unvers escribo selectate y luego
imprimimos este valor seleccionado A continuación, también,
es necesario configurar la etiqueta porque quiero
mostrar el valor seleccionado
en nuestra etiqueta también. Aquí, necesitamos escribir
level dot config dentro del rundress y necesitamos
configurar el parámetro text,
text equal to y aquí
uso método de Estring Después dentro del código doble, paso el valor actual y dentro del color ress paso el valor seleccionado.
Voy a establecer este archivo. Así que cada vez que elijo
algún valor
del spin boox va a
imprimir el valor actual Déjame mostrarte. Entonces
, por favor, establece este archivo. Si ejecuto este código
en mi terminal, aquí puedes ver la ventana, y esta es nuestra caja de giro. Si aumento el valor, ahora se puede ver que el valor
actual es dos. Imprime el valor actual en mi ventana con la
ayuda de etiqueta. También imprime el valor actual en nuestro terminal debido a esta sentencia print
y aquí usamos función
Callback con el parámetro de comando
help hop Entonces al instante, cambió el valor cuando
aumento el valor. Y ahora déjame mostrarte
otra cosa de lo más importante. Si intentas cambiar el valor de la caja de
giro
mínimamente, sí, puedes. Yo te permito hacer eso. Entonces puedes pasar cualquier
valor como el 56, pero esto no es lo que quiero. Si haces eso, el usuario
puede pasar cualquier cosa, cualquier clave no válida como texto, número, etcétera,
así que no la quiero Para resolver el problema, podemos usar otro
parámetro, que es el estado. Entonces, cuando creas
este spin boox, entonces necesitas usar otro
parámetro, que es state Estado igual a Radón. Necesitas usar este
parámetro y es importante. Entonces después de satisfacer si
vuelvo a estar en este código e intentar cambiar el valor de spin boox manualmente, no
va a funcionar Ahora bien, no puedes
escribir nada aquí, pero puedes incrementar el valor Entonces espero ahora el
concepto
te quede claro qué es spin boox
y cómo podemos usarlo Si hablo de casos de uso, se usa para pizarra
cantidad o conteo, eligiendo hora, fecha o calificación. Entonces espero que ahora el concepto de caja de
giro sea claro para ti. Así que gracias por ver
este video, mantente atento para el próximo Tutorial.
22. Widget de escala Tkinter: Hola, chicos, me alegro
de verles de vuelta. Una vez más, estoy de vuelta con un
nuevo tutorial relacionado con Kiner. Hoy en este
tutorial, vamos
a aprender asistente de escala Kinter Este asistente de escala
en inter proporciona un control deslizante para seleccionar un
valor numérico en una cresta. Es ideal para ingresar números con retroalimentación visual
como ajustes de volumen, brillo o sprit Si hablo de su característica clave, selecciona una onda continua
o escalonada. ¿Puede ser horizontal o vertical? Además, muestra un manejador
que el usuario puede arrastrar y admite funciones de devolución de llamada
cuando cambia el valor Déjame mostrarte un
ejemplo de asistente de escala. Como pueden ver, estamos en mi
vis un coordinador de estudio y ya
creo una
simple ventana básica. Aquí vamos a
crear una escala horizontal. Para crearlo primero,
voy a definir una variable y nuestro nombre de
variable es scale,
scale igual a nuestro asistente de escala. Entonces dentro del
Rundress necesitamos
poner la escala en una ventana raíz, luego necesitamos
definir desde dónde
vamos a comenzar nuestro Vamos a iniciar la
escala desde los ceros. Es el rango mínimo
y nuestro rango máximo es 100 y definimos el
rango máximo con dos parámetros. Entonces necesitamos
definir el oriente. Utilizándolo, podemos definir
la orientación. Podría ser vertical, de
lo contrario horizontal. En nuestro caso, utilizamos horizontal. Entonces usamos el parámetro de comando. Se va a llamar a esta
función show value, y ahora voy a
crear la función. Voy a definir
la función. Así que tip DF y nuestro
nombre de función es mostrar valor. Después dentro del latón redondo, voy a pasar el
do algún tipo val. Entonces dentro de esta función, por ahora, voy a escribir pass. Después de eso, necesitamos empacar
la báscula en nuestra ventana raíz. Para eso, voy a
escribir pack scale dot pack. Dentro de los tirantes redondos,
asigno algún relleno, pago diez. A continuación, voy
a crear una etiqueta que va a pintar
la escala actual wid Para eso, defino una etiqueta variable y etiqueta igual a label y la
metemos en una ventana raíz, y até este texto
a esta etiqueta. Asigno este texto a esta
etiqueta, seleccionado cero. Por defecto, va a
imprimirlo y empaco esta etiqueta. Ahora bien, en nuestra función, necesitamos configurar esta etiqueta y configurarla aquípara escribir, algunos quitados pasan
totype label punto Cf. dentro de los vestidos de correr, voy a escribir texto, y quiero confit
text parámetro igual a,
y voy a usar Estrem
entonces dentro Dentro de los códigos dobles,
voy a pasar esta declaración, seleccionarla dentro del
cali vsus el valor El valor que obtenemos
de esta escala, va a rezar el
valor en esta etiqueta. Y voy a poner este archivo. Después de configurar este archivo, si
no hago este código en mi terminal, aquí puedes ver la escala. Por defecto, por defecto, se establece en el cero,
el valor mínimo. Si muevo este deslizador,
como pueden ver, imprime el valor en nuestro nivel y podemos
deslizarnos hasta el valor 100. Ahora déjame mostrarte
las opciones que podemos usar con
el asistente de báscula. Estos son los parámetros
que podemos usar con la escala desde para
orientar comando, resolución, longitud,
intervalo de tick y nivel. Usando resolución, podemos definir el
tamaño stp usando length, podemos definir la longitud
del deslizador en pixel Usando intervalo pico, marca intervalo en la escala y
cantar y usando nivel, podemos mostrar el texto
por encima de la escala. Déjame mostrarte
la demostración de todo este parámetro. De nuevo, estamos en mi código de
estudio Visal y voy a y voy a
comentar esto a línea Aquí voy a
crear otra escala. Entonces al principio, voy a
definir la escala variable. Escala igual al método de escala. Después dentro de las prensas
redondas primero, necesitamos ponerla en
una raíz de ventana raíz. Ahí después de eso,
voy a usar nuestro primer parámetro de underce de underscoe y voy a comenzar
nuestra escala Diez, y quiero
escalarlo hasta diez. A continuación, voy a
aportar el valor de oriente. Usando orient, podemos definir
la orientación de la escala. Podría ser vertical, de
lo contrario horizontal. Entonces escribe orient y esta vez voy a usar valor
vertical, vertical. Después de eso, voy a
usar resolución resolución, y voy a
decir resolución 0.5. Después de la coma, entonces
voy a decir longitud,
longitud y rebaño para establecer la
longitud 200, 200 píxeles Entonces vamos a
usar intervalo grueso. Tick intervalo, y
voy a configurarlo en. A continuación, voy a
usar nivel nivel, y voy a establecer ajuste. Después de eso, después de eso, voy a usar
comando perímetro, comando, comando calcomanía dos, y quiero llamar a esta
función show value. Copio el nombre de la función y lo
voy a poner aquí. Aquí utilizo todos los parámetros, resolución de
orientación, longitud, intervalo de tick,
etiqueta y comando. Hasta eso también en paquete el método de paquete de
puntos de escala tipo escala. Voy a establecer este archivo.
Up configurar este archivo letras en el código en nuestro terminal
y ver cómo se ve. Antes de configurar este archivo, muevo la etiqueta
por encima de esta escala, y voy a volver a
configurar este archivo y ejecutar este código
en nuestra terminal. Arriba en este código, como puedes ver, como puedes ver,
es escala vertical. Definía la
altura de escala 200 píxeles. Toma el intervalo dos. Entonces cero superior, imprime dos, luego pn cuatro, luego imprime seis,
luego ocho, y luego diez Este es nuestro valor de ajuste
de nivel de habilidad. Y también puedes notar
cuando deslice mi deslizador, salta Dn 020.5, porque esta es nuestra resolución Harry dijo la resolución 0.5. Entonces en cada paso
, salta hasta 0.5. la misma manera, si vuelvo a
desplazarlo hacia abajo, ahora salta hasta ahora
se ha convertido en 1.5. Así que en cada paso aumentó
0.5 valor a este deslizador. Y si hablamos de los casos de
uso de este asistente, se utiliza para control de
volumen de audio, etiqueta de sala de
imágenes, control de
brillo, velocidad de
juego o dificultad,
y muchos más. Ahora está claro para ti, cuál es el uso del
asistente de habilidades en la introducción Gracias por ver este video, estén
atentos para nuestro
próximo tutorial.
23. Barra de progreso en Tkinter (a través de ttk): Hola, chicos. Es
bueno verte de vuelta. Una vez más, estoy de vuelta
con otro tutorial relacionado con Python KintertDay
en este tutorial, vamos a
aprender Es otro mago en Kinter. Ahora bien, ¿qué es la barra de progreso? El asistente Barra de progreso
de KinterTTT proporciona una representación visual del progreso de una
tarea de
registro Puede operar en dos modos. Y si hablo de su modo, viene con
modo determinado y modo indeterminado El modo determinado muestra el progreso
real 0-100%, y el modo indeterminado muestra movimiento sin indicar
cuánto Básicamente se utiliza cuando
no se conoce la duración. Déjame mostrarte la
sintaxis básica de la barra de progreso. Como puedes ver, estamos en
mi editor de código de estudio. Al principio, voy a
importar el módulo inter. De Kinar, voy
a importar estrella. Se va a importar todos
los módulos necesarios. Después de eso, necesitamos
importar la barra
de progreso del Kint TK Aquí voy a escribir desde la barra de progreso de importación de
Kint TK. Entonces voy a crear una ventana
raíz usando la clase TK, root igual a TK. Después de eso, necesitamos
ejecutar el bucle principal. Después de crear la ventana básica, voy a crear
la barra de progreso, y la voy a
almacenar en una variable y nuestra variable es
PB, barra de progreso. PB igual a barra de progreso, dentro de las rondas primero
queremos definir la raíz Después de eso, necesitamos
brindar la orientación. En nuestro caso, orientar
igual a horizontal. Entonces longitud igual a 200
y modo determinado. A continuación, voy a empacar
esta barra de progreso, método
pv dot pack, y voy a configurar este
archivo. Seguro establecer este archivo. Si ejecuto este código
en mi terminal, como pueden ver, así es como se ve
una barra de progreso. Pero para iniciar un progreso, necesitamos definir una función. Pero antes voy
a añadir un botón. Pero voy a aumentar la
longitud de la barra de progreso, voy a hacerla 300. Además, voy a
agregar un poco de relleno en YxS cuando lo empaque pad, Y, pad, Y igual a
20. De lo contrario, diez. A igual a diez, y
voy a establecer este archivo. Ahora, vamos a crear un botón que va a
activar una función. Se va a activar una función y van a
iniciar el progreso. Voy a definir
un botón variable, botón igual a
botón
y le asigno este texto, iniciar progreso a este
botón y comando igual a él va a llamar a esta
función, iniciar progreso. Ahora, necesitamos
definir esta función, pero antes voy
a empacar este botón, método
Vtn punto PAC Después de eso, voy a
copiar el nombre de la función, iniciar el progreso, y voy
a definir la función. Entonces aquí antes de la clase DC, voy a definir una función,
Dave, y nuestro
nombre de función es start progress. Después de eso dentro de esta función, necesitas definir el
valor actual de la barra de progreso, y para establecer el
valor actual, necesitas escribir PV, luego dentro del cuadrado ss
necesitas poner valor Qd Entonces puedes asignar
el valor que quieras. PV cero significa que está
vacío para empezar. Después de eso, voy a almacenar
la ola de progreso máximo. Maxwell igual a 100. Después siguiente, voy a establecer el valor máximo
de la barra de progreso. Nuevamente, estoy tipo PV
dentro de la base cuadrada, voy a establecer
el valor máximo igual a Maxwell. Quiero
decir el centenar. Superior eso arriba que necesitamos
para iniciar un bucle 0-100. Entonces para escribir para I en rango dentro del
latón redondo es max Bell más uno. Aquí utilizo más uno para
asegurar que 100 está incluido. Después de eso, dentro de
este bucle de cuatro, necesitamos actualizar
la barra de progreso. Entonces PV valor igual a I. Así que cada vez que se va
a actualizar por uno. Entonces cada vez que va a
actualizar la tabla de progreso. A continuación, necesitamos forzar
a la aplicación I para reprimirla para reformular
el valor de actualización Para eso necesitamos escribir pb
dot update. Este método. Y para que la
barra de progreso se llene sin problemas, necesitamos asignar poco retraso. Él voy a asignar 20
milisegundos de retraso, totoot punto superior dentro la carrera brces,
voy a pasar Básicamente,
va a introducir un retraso de 20 milisegundos entre cada actualización usando root dot Ater Ahora, después de configurar este archivo, si ejecuto este código
en mi terminal, como pueden ver, esta
es nuestra barra de progreso. Si hago clic en iniciar progreso, déjame mostrarte como puedes ver, comienza en la
barra de progreso y sube
hasta 0200 y llena
la barra de progreso Entonces este es el ejemplo de barra de progreso
determinada. Ahora déjame mostrarte
otro ejemplo
de barra de progreso indeterminada Como pueden ver, ya
creo una ventana básica de kinser Ahora, voy a
crear una barra de progreso, pero esta vez voy a
usar el modo indeterminado. Aquí creo esta barra de progreso, PB igual a barra de progreso, luego orientación horizontal y longitud 300 modo indeterminado Después empaco esta barra de progreso. Después de eso, voy a crear
el botón de inicio de carga. Yo defino este botón y nuestro texto de botón
se empieza a cargar. Entonces mando esta
función, Ejecutar indeterminado. Este es nuestro nombre de función,
y empaco este botón. Con eso,
voy a crear otro botón para
detener el progreso. Aquí creo otro botón
para detener el progreso, y se llama a esta
función, stop indeterminado Ahora necesitamos definir
tanto la función. Primero, voy a
definir corrida indeterminada. Aquí Dave corre indeterminado
dentro de la función, utilizo PV dot start Dentro de la carrera versus
diez milisegundos. Se va a iniciar
la barra de progreso en paso de análisis de diez milisegundos A continuación, tenemos que detener
la barra de progreso. Para eso, voy a
definir otra función y nuestro nombre de función es
stop indeterminado Detener indeterminado
dentro de esta función. En el tipo PV método de parada de punto
para detener el avance brío. Si configuro este archivo y
salvo código en mi terminal, aquí puedes ver
la barra de progreso
e iniciar el botón de carga y
el botón de parada. Si alabo, botón de inicio, ahora puedes verlo mostrar movimiento sin indicar
cuanto se hace. Lo usamos cuando no
sabemos la duración. No sabemos cuántas veces
va a consumir para
completar nuestro trabajo, y si quieres
detener este progreso solo en elogios, detente botón. Este es el ejemplo
de barra de progreso determinada e indeterminada. Ahora bien, si hablo de su opción
común, de
lo contrario parámetro, viene con orient, length, mode, maximum, y value, ya
estamos familiarizados con eso. Si hablo de los casos de uso, se usa para descarga de archivos, finalización de
impuestos, pantalla de carga, instalador u operaciones por lotes. Esto es para este tutorial. Gracias por ver
este video
estén atentos para el Next Tutorial.
24. Menú y submenús en Tkinter: Hola chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta con un nuevo tutorial relacionado con el asistente Kiner Hoy en este tutorial, vamos a aprender menú
y submenús en Kinter Ahora la pregunta
es, ¿qué es un menú? Un menú en Kiner es
una lista desplegable de opciones ubicadas generalmente
en la parte superior de la ventana,
como archivo, editar sanar
en la mayoría de las aplicaciones, y los submenús son
menús anidados que aparecen cuando se acuesta sobre
una opción de Si te muestro el
ejemplo de menú, este es el ejemplo de
menú en cualquier aplicación. Esta es la barra de menús,
y es uno de los asistente más importantes
en cualquier aplicación GUI. Ahora hablemos de
cómo crear un menú. Al principio, necesitamos
crear un objeto de menú. Entonces necesitamos asignarlo a la ventana principal
usando punto de ventana Cf. Después de eso, después de eso, necesitamos agregar
menús de nivel superior como Archivo,
Editar, ayuda, etcétera, Editar, ayuda, etcétera, usando agregar ataúd de guión bajo
y puede agregar comandos y
submenús usando el método Add
underscoeommand y agregar método separador la ventana principal
usando punto de ventana Cf.
Después de eso, después de eso,
necesitamos agregar
menús de nivel superior como Archivo,
Editar, ayuda, etcétera,
usando agregar ataúd de guión bajo
y puede agregar comandos y
submenús usando el método Add
underscoeommand y agregar método separador de guión bajo. No te preocupes. Te voy
a mostrar todo esto, cómo puedes crear un
menú y un submenú Si hablamos de los
métodos clave y sus roles, estos son todos métodos. Tales como menu at
command, at cascada, at separator, tear off, root dot config, etcétera Este método crea un nuevo menú. Usando at command, podemos
agregar elementos accionables, y cantar en cascada, podemos agregar submenús Usando en separador,
podemos agregar líneas horizontales. Usando arrancar cero, podemos eliminar la línea de trazos
en la parte superior del menú. Es opcional. Usando el punto
raíz C fig, podemos vincular la
barra de menú a la ventana principal. Déjame mostrarte
la demostración cómo podemos crear un principal. Vamos a saltar a lo práctico. Entonces como puedes ver, estamos en mi editor de código visual studio y creo un
archivo Python main doot pie, y creo un archivo Python, maintPi y aquí, creo
una ventana básica simple Al principio, necesitamos
crear una maniobra. Para eso, voy a definir una variable llamada manuar
Estiércol igual a aquí, necesitamos usar este menú de clase y dentro de él y dentro de él, necesitamos mencionar la
ventana en nuestro caso root Después de crear la maniobra, voy a crear
la viga de archivo Para eso, voy a definir una variable llamada menú archivo. Menú Archivo igual a mí. Y voy a mover este
menú a esta manuba. Entonces entonces usas otro parámetro
arrancar, arrancar cero. Quiero decir que va a quitar la línea de trazos en la
parte superior del menú. Es opcional. Si
quieres usarlo, sí, puedes. A continuación, es necesario agregar la
etiqueta para este menú de archivo. También es necesario
ponerlo en el archivo Menú. Para eso, necesitamos escribir manubar manubar dot
en Método Barril Luego dentro de él, primero, hay
que proporcionar
el nombre del archivo, quiero decir el archivo de elemento de
menú, y luego Menú igual al menú archivo y
voy a configurar este archivo la misma manera,
voy a crear otros
dos
elementos del menú como archivo, luego voy a crear Editar. Después de eso, voy
a crear salud. Entonces aquí, voy a
crear el menú Editar. Primero, voy
a escribir Editar menú, Editar menú igual a menú y lo voy a
poner en una barra de menús. Y también digo nivel de cero. Después de eso, manubar
punto en cascada, etiqueta Editar y
manqual al menú la misma manera, voy
a crear otro, que es ayuda Menú. Tipo ayuda Mu igual al menú. Luego Mnubar punto en cascada,
etiqueta Hill, Mnqual A continuación, necesitamos adjuntar el
menú mal a la ventana. Para eso, necesitamos usar root dot config Method,
root dot config. Dentro del más redondeado dice
Menú igual al bardo de menú. Éste. Voy a
poner esto bien. Después de configurar este archivo, si
ejecuto este código en mi terminal, es como se ve nuestro menú. Ahora bien, si obero mi causer
en el menú del archivo, aquí no se
puede ver nada porque dentro del menú del archivo no crean
opción para el Ahora dentro del menú de archivos, voy a poner Nuevo Archivo, Abrir Archivo, salir,
etcétera, guardar, etcétera Quiero decir si hago
clic en Menú Archivo, aquí puedes ver
aquí puedes ver otras opciones como nuevo archivo,
nueva ventana, abrir archivo, abrir carpeta, guardar
SABA, etcétera Además, se puede ver
una línea separadora. Entonces vas a crear eso. Podemos hacerlo usando el método
at command. Primero, necesitamos
escribir el nombre del menú en nuestro caso Archivo Menú. Así que voy a pasar así para
pasar archivo menú punto al mando. Usando at command,
podemos agregar un nuevo ítem. Podemos agregar un nuevo elemento dentro
del menú en nuestro caso, nuevo y comanda este método. Así que cada vez que presionamos
la nueva etiqueta, va a ejecutar
esta función, new five, y nuestra función
va a crear un nuevo archivo. Depende de ti lo que va a hacer tu
función. Entonces por ahora, voy a
definir una función, nuevo archivo. Entonces copio el nombre de la función. Entonces voy a
definir esta función. Después de importar el módulo, aquí voy a definir la
función llamada nuevo archivo. Fecha nuevo archivo y esta
función va a imprimir esta línea en nuestro
terminal, Nuevo archivo creado. No vamos a
crear ningún archivo nuevo porque aquí solo trato de
mostrarte cómo podemos
crear el menú. Después de eso, después
de crear el Nu, voy a crear
otro nivel. Quiero crear abierto. Así que de la misma manera, necesitamos escribir filenu
dot at command,
label open, y esto va a llamar a esta
función open file Y también, necesitamos
crear esta función. Entonces aquí, voy a definir
otra función, abrir archivo, y vas a
imprimir archivo abierto, básicamente solo trato de
imitar un menú,
algo así Después de eso, quiero agregar
un separador como este. Entonces si abro menú archivo, aquí se puede ver un separador. De la misma manera, podemos
crear separador en Kinder. Para crear el separador en menú de
tipo archivo punto
en método separador. Arriba definimos el separador,
como puedes ver, hasta definir el
separador, a continuación, vamos a crear la salida. Así que aquí voy a definir otro archivo etiqueta
menú punto al comando, label exit, y voy a
llamar a esta función exit app. Ahora necesitamos
definir este método. Así que aquí, Dave exit app inside root dot quit.
Voy a poner estos cinco. Siempre que el usuario presione este botón, va a cerrar la ventana. Ahora subamos el archivo y ejecutemos
este código en nuestra terminal. Quiero presionar el botón Ejecutar. Entonces como pueden ver, este es nuestro
manuba si hago clic en archivo, aquí puede ver
Nuevo abrir y salir Si presiono nuevo, como pueden ver en mi terminal, imprimir, nuevo archivo creado. Al mismo si presiono Abrir, va a imprimir,
abrir, archivar abierto. Y si hago clic en la opción de salida, también puedes notar
el separador aquí, y si hago clic en la opción de salida, va a salir de la ventana. Va a salir de la pura. Ahora de la misma manera, voy a agregar algunas
otras opciones para editar, como copiar, cortar y pegar. Voy a agregar
estas tres opciones. Aquí, dentro del menú Editar, voy a agregar todas las opciones
usando el método de comando at. Primero, queremos atar el nombre del
menú, en nuestro caso, Edit menu dot at command inside the Rundress need to use the label parameter,
label equal to cut Y voy a poner este archivo. Ahora bien, si configuro este archivo y ejecuto este código
en nuestro terminal, esta vez si
lo abro y si hago clic en
esta opción Editar, aquí puedes ver
ambas opciones. Cortar, copiar y pegar. Ahora, saltemos
al menú Ayuda. Aquí, voy a crear
un submenú dentro de él. Dentro del menú Ayuda, aquí voy a
definir otro menú que es sobre menú. Acerca del menú igual al menú y lo
voy a poner
dentro del menú Ayuda. Entonces este es nuestro menú de
Ayuda y aquí voy a poner el
menú Acerca de dentro del menú Ayuda. Después de eso, dentro del menú At, voy a agregar
las etiquetas, etiqueta, como Acerca de nosotros, virgen info, etcétera Entonces también, necesitamos
poner esto sobre el menú
dentro del menú de ayuda. Así que tenemos que utilizar
el método en cascada. Iotype helpmenu punto en cascada
dentro del latón redondo, etiqueta asigna esta etiqueta sobre
y Mnequal a acerca Aquí creamos el menú A, entonces necesitamos poner
este menú acerca de dentro del menú Ayuda usando
el AtCasCat.
Voy a establecer este archivo. Después de establecer este archivo, si ejecuto
este código en mi terminal, ahora se puede ver un meno
completamente funcional. Si hago clic en el Menú Ayuda, ahora puedes ver un
submenú, del cual se trata Si coloco mi tarjeta
sobre este menú sobre, aquí puedes ver que está abierta otra ventana y puedes
ver ATs y Virgin Info Aquí creamos un hombre totalmente
funcionable y conocemos el proceso de
cómo podemos crearlo. Esto es para este tutorial. Gracias por ver este video.
25. Separador, ventana de vidrio acrílico, cuaderno: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con el nuevo tutorial relacionado con los asistentes Kiner Advanced Aquí voy a explicar tres importantes asistente de
estructura de maquetación en Kiner separador, Pan Ventana y cuaderno Estos asistentes se
utilizan principalmente para organizar y mejorar el diseño de la interfaz de usuario en aplicaciones
más complejas Ahora, comencemos con el primero separador, separador
Tk. Es una línea delgada
utilizada para
separar visualmente diferentes
secciones de tu GUI. Podría ser horizontal
o vertical. Si hablo de su sintaxis, es necesario escribir Tt clase
separador. Entonces dentro del run brass, aquí necesitamos pasar el elemento paréntivo
en nuestro caso root Entonces necesitamos proporcionar
la orientación, tal como horizontal, por
lo demás vertical. Veamos la demostración de
cómo podemos usarlo. Como pueden ver, estamos invitados
al studio codior y
creo un separador de
nombre de archivo Python punto pi Primero, importamos
nuestro módulo Kiner e importamos todo
desde el Kinter Después importamos TDK de Kiner. Después de eso, creamos
una ventana raíz. Esta es la ventana básica. Ahora voy a definir una etiqueta. Voy a definir una
etiqueta a esta ventana raíz. Etiqueta dentro de los versos aquí, voy a pasar la raíz de la presa de la ventana
principal. Entonces voy a asignar este texto encima de la línea
y luego empacar esta etiqueta. Después de eso, voy a
crear este separador. Para crear el separador
tt punto Sebatocass. Luego dentro de la runbress primero, necesitamos proporcionar el
nombre de la ventana en nuestra raíz de caso, luego necesitamos proporcionar
la orientación Orientar igual a aquí quiero
dibujar una línea horizontal, así paso horizontal. Después empaco este separador
usando pack Mthwor llene este en Xxs y
ademas asigno poco
relleno en direccion YxS ademas asigno poco
relleno en direccion Después de eso, voy a
definir otra etiqueta. Etiqueta y voy a poner la etiqueta debajo de
esta línea horizontal. Aquí dije el
texto de la etiqueta debajo de la línea, y luego empaco esta etiqueta. Después de este archivo, si ejecuto
este código en nuestra terminal, déjame mostrarte
esta es la línea. Esta es la línea de la
que estoy hablando. Aquí trazo una línea
entre las dos etiquetas. Si hablo de ello casos de uso, es separar de barras de herramientas de
sección o agrupar áreas
dentro de una ventana Ahora hablemos de ventana de pan. Básicamente, es un
continer que divide la ventana en sartenes móviles y
redimensionables Se pueden agregar múltiples asistentes
dentro de él. Si hablamos de ello sintaxis
primero en el tipo ventana paned, ventana paned, luego
dentro de las rondas para proporcionar necesitamos
proporcionar el nombre de la ventana En nuestro caso raíz, entonces
necesitamos proporcionar el oriente, luego tenemos que pasar
la orientación. En nuestro caso, sería
horizontal, de lo contrario vertical. Ahora déjame mostrarte
la demostración lo que es ventana con paneles Como pueden ver, creo otro archivo Python ventana
paned punto Pi y aquí creo una ventana básica
simple arriba kinter Al principio, voy a
definir una ventana de pan. Para eso, voy a definir una variable PW PW igual
a ventana paned Entonces dentro de la Runress aquí, root es el padre
de la ventana panorámica, y usamos orient horizontal Es decir que vamos a
colocar la sartén una al lado de la otra. Si quieres
colocarlo arriba e abajo, entonces puedes usar vertical. Después de eso, necesitamos empacar este Pw pack y
dentro del redondeo dice, aquí usamos dos parámetros,
fill y expand Si usas llenar ambos, entonces va a expandir el
asistente, tanto la dirección. Quiero decir horizontal
y verticalmente. Si el ritmo libre está disponible y se expande
igual a un medio, va a permitir que
el asistente
crezca cuando se cambie el tamaño de la ventana. Y ahora voy a poner una
etiqueta a esta ventana de pan. Quiero colocarlo al lado del regazo. Para eso, laped igual a etiquetar aquí pongo la etiqueta
dentro de esta ventana de pan, y escribo texto cama pan y nuestro
color de fondo es azul claro Después de eso, necesitamos agregar el nivel de elevación dentro de
esta ventana de sartén como una sartén. Para eso, voy a escribir pw dot add dentro del
run bass está encendido De la misma manera, voy
a crear la etiqueta correcta. También, tenemos que
ponerlo en el lado derecho. Para eso, nuevamente, necesitamos
usar add method pw add right. Ahora, después de configurar este archivo, si ejecuto thecde en mi terminal,
así es como se ve nuestra
ventana paned Si aumento el
tamaño de la ventana, como pueden ver, acuerdo al tamaño de la ventana, se redimensiona las sartenes Básicamente, lo usamos para editores lado a lado como File
Explorer y editor. Además, podemos usarlo
para configurar paneles, área de
vista previa, etcétera Ahora, hablemos del
último, que es el cuaderno. Básicamente, lo usamos para crear una interfaz con pestañas
similar al navegador,
similar a la pestaña del navegador
o diálogo de configuración Usándolo, puedes saltar
una pestaña a otra pestaña. Si hablo de ello sintaxis, primero hay que definir
el nombre de la variable, luego en el tipo TDK notebook y luego hay que pasar
el nombre de la ventana padre Hasta eso, en
usar el método add. A continuación, debe
pasar el marco hijo y el texto, el nombre de la pestaña. Déjame mostrarte la demostración de
cómo se ve el cuaderno. Como pueden ver, aquí creo otro archivo Python,
cuaderno punto cinco. Al principio, importamos el
módulo Ginter y aquí importamos todas las funciones,
clases y constantes necesarias Después importamos TK. TTC significa módulo TK temático, que contenía
magos temáticos modernos como cuaderno, barra de
progreso y vista Tre
y creamos la Al principio, voy
a definir un cuaderno. Para eso, voy a declarar
un cuaderno variable igual
al cuaderno Ttkt y lo
ponemos en una ventana raíz Después de eso, necesitamos
tack este
cuaderno, notebook dot pack
dentro del proceso de ejecución,
Heroseepand, igual a uno,
y llenar igual a y Expandir uno significa que el
cuaderno se expandirá para usar todos los
espacios disponibles en la ventana, y llenar ambos significa que el
cuaderno se estirará tanto horizontal como verticalmente cuando se cambie el tamaño de la ventana. A continuación, voy a crear
RaltFramef de dos pestañas. Entonces voy a definir dos
variables tabo y tacto, Tabo igual a frame, y pongo este frame en el cuaderno y toco
dos iguales a frame, también
pongo esta
en la A continuación, voy a asignar
un texto de etiqueta para la pestaña. Así que aquí estoy la etiqueta de propina, y voy a
ponerla en una pestaña uno y Amutip bienvenido a tab
y empaco esta De la misma manera, necesitamos
crear otra etiqueta. Y esta vez voy a
poner éste en la pestaña dos. A continuación, necesitamos agregar cada marco como una pestaña separada
al cuaderno. Para eso, necesitamos
usar el método add. Voy a agregar tanto la pestaña, y quiero agregarla por separado. I type notebook dot at Tab one, text tab one and notebook
dot ad tab two text tag two. Aquí aparecerá la pestaña
con el título de pestaña uno y la etiqueta dos aparecerá con
el título de la Tabulación dos. Ahora, fijemos el archivo. Vamos a configurar el archivo y ejecutar
este código en nuestra terminal. Después de ejecutar este código
en nuestra terminal, aquí puedes ver el
resultado. Esta es la tabulación uno. Dentro de esta pestaña, Hey print, llegaremos a la tabulación uno con
la ayuda de esta etiqueta. Si pasas el cursor sobre él,
puedes ver que se ha vuelto azul. Si hago clic en él, ahora
saltamos a la pestaña dos, similar al navegador
Aquí imprimimos, esta es la pestaña dos con
la ayuda de esta etiqueta. Si tratamos de
expandirlo, sigue siendo su trabajo. Porque Harry lo expande tanto
en la dirección. Es muy similar
con la pestaña del navegador, y se utiliza para
organizar configuraciones, múltiples vistas o contenido
categorizado. Espero que ahora el concepto
sea claro para ti. Gracias por ver este video, Sytune para el próximo capítulo
26. Vinculación de comandos (método más simple): Oigan, chicos, me alegro de volver a verles. Este es el primer tutorial
relacionado con el manejo de eventos de Kinter. En este tutorial, vamos
a aprender el enlace de comandos, método
más sencillo en Kinter encuadernación de comandos es la forma más básica y amigable
para
principiantes de manejar eventos en Kinter Por lo general, se usa con
asistentes como botón, botón verificación, botón de radio
y hombres Puede asignar una función a un asistente utilizando el parámetro
command. Cuando el usuario interactúa
con ese asistente, se ejecuta
la función Si hablo de ello sintaxis, primero escriba parámetro de comando luego es necesario asignar
el nombre de la función. Recuerda, cuando pasamos
el nombre de la función, no
usamos paréntesis Es significa que no se va
a ejecutar inmediatamente y la función no puede tomar
argumento a menos que se envuelva. También se puede utilizar con la función
Lambda. Lambda es una función de un trazador de líneas. Entonces déjame mostrarte
el primer ejemplo, comando
básico del botón. Entonces como pueden ver,
aquí creamos una ventana básica simple de GY, y aquí le asigno un ejemplo de enlace de
comando title. Sabemos que ya estamos
familiarizados con este evento, pero necesitamos
aprenderlo paso a paso. Por eso te voy
a mostrar eso. Entonces voy a definir un botón, botón igual a
botón, y el texto del botón es genial. Y aquí uso el parámetro de
comando. Comando igual a nuestro nombre de
función es genial. Ahora, tenemos que
empacar este botón. Entonces aquí tecleamos botón,
dot pack Mthod. Entonces necesitamos
definir esta función. Voy a definir esa
función en esa posición. Entonces lo voy a poner aquí. Voy a establecer este
archivo. Dave, saluda, imprime hola Kiner. Este es el comando básico del
botón, y ya estamos
familiarizados con eso. Entonces si ejecuto este
código en mi terminal y alabo el botón, déjame mostrarte si
alabo saludar, como puedes ver en mi terminal, se imprime hola, Kiner Ahora, déjeme mostrarle
otro ejemplo. Ahora, cada vez que
llamamos a la función, quiero pasar un argumento. Para eso, necesitamos usar la función
Lambda.
Déjame mostrarte. Así que de nuevo, estoy de vuelta a mi editor de código de estudio
y creo otro archivo principal de
Python también que Pi y yo creamos una ventana básica
simple. Al principio, voy a definir un botón y dije
botón texto, patearme. Entonces en coma, voy
a usar una función Lambda. Comando igual al tipo
Lambda, luego Colin. Entonces para llamar a la función y dentro del paréntesis aquí, voy a pasar el do Quiero decir un argumento. Ahora necesitamos procesar
este argumento. Yo para definir esta
función, mostrar mensaje. Aquí, voy a
definir la función. Copo el
nombre de la función, mostrar mensaje. Voy a escribir Dave y nuestro nombre de función
es mostrar mensaje. Entonces dentro de las rotondas
como argumento, vamos a pasar mi nombre Nombre. Entonces dentro
de la función aquí, voy a escribir print
statement, print. Entonces dentro de los vestidos redondos, voy a usar cuerda F aquí. Cadena F dentro de los
códigos dobles, hola coma. Después dentro de las Clases, voy a pasar la
variable nombre y semi para terminar esta línea y exclavación.
Voy a subs fiy Ahora, en vez de mi nombre, puedes pasar cualquier cosa aquí. Puedes pasar cualquier nombre aquí. Ahora, tenemos que etiquetar este botón. Para eso, voy a escribir BTN botón punto PAC Mathod tag Ahora después de empacar este botón, voy a configurar este archivo y ejecutar este código en mi terminal. Después de ejecutar este código, aquí puedes ver el botón click me. Si hago clic en este botón, como lo pueden ver
impreso en mi terminal, hola, mi nombre Jointo Básicamente, Lambda
se utiliza para crear una función ónima que envuelve la
original con parámetro. Y si hablamos de
limitación de mando, sin información de eventos y
sin control anticipado. Sin información del evento significa que
no obtuviste detalles como qué tecla o botón
del mouse se utilizó. Además, no tienes control
avanzado como posición
del mouse o la entrada
del teclado. Y si hablo de
ello casos de uso, lo
usamos con botones
como enviar, guardar, cancelar, etcétera También, lo usamos con menús
como archivo, salida, etcétera, y también lo usamos para acción rápida
simple que
no necesita datos de eventos Este es el método de enlace de
comandos más simple. Y así es como podemos usarlo. Gracias por ver
este video estad atentos para el próximo tutorio
27. Uso del método bind() (método avanzado): Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de
vuelta con otro tutorial relacionado con el manejo de eventos
inter, y hoy vamos
a usar el método Bind. Es un método avanzado. El método bind le permite adjuntar un
controlador de eventos a un asistente, que pueda reaccionar a eventos de mouse, eventos keywod u otros Si hablo de su sintaxis
totype wizard dot bind método, entonces dentro del redondo dice, necesitamos pasar la
descripción del evento entre corchetes angulares Entonces necesitas llamar a
la función handler. Eventos como evento mouse, evento palabras clave, etcétera Todos estos son eventos
comunes del ratón. Si usamos el botón dash one, entonces es decir, dejar que el mouse haga clic. Si usa el guión inferior dos, es un clic medio medio. Si usas la parte inferior D tres, es un clic derecho medio. Si usa el botón de doble
guión uno, significa clic de doble labio. Y si usamos P uno hace movimiento, significa arrastrar el ratón
con el botón b. Si usamos Enter, es
que los autos malos son el asistente Enter. Si usamos licencia, los autos
son dejar mago. Todos estos son eventos de mouse
que podemos usar con Kiner. Ahora déjame mostrarte
ejemplo básico con patada de ratón labial. Como pueden ver, estamos en mi
editor de código de estudio y creo un archivo Python main dot Pi y aquí creo una ventana Kiner
básica Aquí primero, voy
a definir una extremidad básica, etiquetar igual a etiqueta, y aquí le asigno un
texto, haga clic dentro de mí. Este es el texto de la etiqueta, y dije diagrama
color azul claro y ancho 30 y alto cinco. Entonces tenemos que empacar esta etiqueta. Para empacar esta etiqueta,
voy a escribir etiqueta punto PAC Math hole. Después dentro de las rotondas
voy a agregar algo de padding, pad en YxS igual a, voy a agregar
20 pixel padding, y voy a configurar este archivo Después de eso, entonces
voy a atar esta
etiqueta con un evento. Para eso, voy a escribir
etiqueta que método bind, bind. Después dentro de las prensas redondas, luego dentro del latón redondo, voy a usar este botón de
evento uno. Dentro de los códigos dobles, dentro de los códigos dobles y
dentro del corchete angular, voy a escribir el botón uno. Entonces voy a escribir coma. Después de eso, voy a llamar a
un método y nuestro metódem está al hacer clic en
guión bajo, A continuación, necesitamos
definir el método. Básicamente, héroe uso
lap mouse clic evento. Ahora, cuando elogio el evento lap mouse
click en esta etiqueta, entonces quiero ejecutar
esta función al hacer clic
para definir esta función. Así que definamos la función. Entonces aquí, voy a
definir la función. Dave al hacer clic dentro del evento
de Rundresss. Entonces dentro de la función, ahora date prisa pasar el
evento del mouse como parámetro. Entonces necesitamos extraer
la posición clicada,
la posición de clic XXS y OXs
e imprimirla en Para eso, voy a escribir
print statement, print, aquí uso Estring luego
escribo mouse click en dentro de los Runds
dentro del evento calices,
XXs y evento YxS Se va a imprimir la
posición del click. Precepto esta pila. Si ejecuto
este código en nuestra terminal. Ahora aquí puedes ver la etiqueta. Ahora si hago clic
en cualquier parte de esa etiqueta, como pueden ver, se
imprime declaración, clic
del ratón a 177 de los YxS y 23
pixeles de los Xxs Y si hago clic en esa posición, ahora puedes ver el valor XXs
28 y el valor YXS 33 Esta es la coordenada de
clic del ratón. Entonces este es el ejemplo
del evento mouse. Ahora, déjeme mostrarle
otro ejemplo. Pero antes de mostrarte el ejemplo de evento de
palabras clave, me gustaría mostrarte
algunos eventos de palabras clave. Estos son los eventos comunes de
palabras clave. El primero es la clave. Es
malo si presionamos alguna tecla, entonces va a
desencadenar este evento. El siguiente es el regreso. Es para la tecla Enter. Entonces ven scape. Es para scape key. Entonces sube,
es para flecha arriba, luego baja, es
para flecha abajo. Entonces ven A. Es para Control plus A. Empecemos la
práctica y veamos cómo
podemos usar el evento de teclado. Como puedes ver, estamos en
el editor de código de estudio de usuario y ya creo un archivo
Python principal dos Pi. Al principio, voy a
crear un campo de entrada. Voy a tomar un campo de entrada. Entonces defino una
entrada variable entrada a entrada, y la ponemos en una ventana raíz y empaco este campo de entrada. Después de eso, voy a vincular este campo de entrada
con teclado evet. Para eso, voy a escribir entry dot bind dentro de
la clave Run Brass, y voy a
llamar al método key. Vamos a llamar a
esta función. Este método, disparadores clave
en cualquier elogio clave. A continuación, definimos en función de tecla. Para ese tipo de dobladillo en la llave dentro
del evento de prensas redondas. Entonces dentro de esta función, voy a escribir print
statement, print. Después dentro de las prensas redondas, timón usa cuerda A y
dentro de los códigos dobles. Dentro de los códigos dobles, voy a escribir
key prese, key Prese clave, luego dentro la Cliress aquí quiero
imprimir el personaje real Así que para escribir incluso a punto char va a
imprimir el carácter real. Quiero decir el personaje
real producido por la prese clave A continuación, quiero imprimir
el nombre de la llave. Para eso, necesitamos usar
las claves de eventos YM. Déjame mostrarte eso.
Aquí escribo símbolo, luego dentro de los corchetes, luego dentro de las teclas de punto
Caliverseven YM Básicamente, va
a imprimir básicamente va a imprimir el nombre
legible por humanos de la clave. Ahora vamos a ejecutar el
código en nuestra terminal. Vamos a configurar el archivo y ejecutar
este código en nuestra terminal. Ahora tenemos una sensación de entrada. Y si escribo algo
como A, ahora, como pueden ver en nuestro terminal imprima la tecla A,
el símbolo también es A. Ahora si alabo enviado, ahora se puede ver para caracteres no imprimibles,
no imprime nada En nuestra prese clave,
no imprime nada, pero en nuestro símbolo,
imprime retroceso y cambio Para eliminar el carácter A,
utilizo retroceso. Por eso imprime retroceso, y luego alabo turno Por eso se mecanografió enviado. la misma manera,
si escribes ult key, ahora puedes verlo imprimir Alt L. Si alabo desde
el lado derecho, ahora puedes verlo impreso. la misma manera, si
alabo tecla Scape, imprima scape y si
presiono uno, dos, tres, cuatro, lo contrario, cualquier número, ahora se
puede ver tecla pulsada cuatro, símbolo también es cuatro. Este es el ejemplo
de evento clave común. Ahora déjame mostrarte el
último ejemplo donde
voy a usar múltiples
eventos en un botón. Vamos a usar
múltiples eventos en un solo botón, así que
déjame mostrarte eso. Como pueden ver, nuevamente,
creo una ventana básica simple, y al principio, voy
a definir un botón. Primero, voy a definir un botón y empaco este botón. Entonces voy a usar
algunas evadas con encuadernación. Entonces voy a
usar múltiples eventos. Al principio, voy a
usar mouse ingresado evento. Entonces para atar el método de enlace de
punto de botón. Aquí voy a usar Enter, y después utilizo la función Lambda. Landa, E, impresión, ratón Entró. A continuación, voy a
usar dejar evento. Entonces Teclea botón, punto bind, deje Lambda, mouse
labiado por fin, voy a usar
botón clic evento Escriba tn punto bind. Botón uno, imprima los dientes del botón. Si configuro este archivo y ejecuto este código en una terminal,
déjame mostrarte. Siempre que coloco
el cursor sobre el botón, si entro el
cursor de mi mouse en este botón, ahora puedes verlo
imprimir mouse ingresado la misma manera, si quito
mi cursor de este botón, imprimo vuelta del ratón. Si marco este botón, entonces puedes verlo
imprimir, botón pulsado Si vuelvo a quitar el
botón, otra
vez, imprime mouse like, mouse enter, y abotónelo. Así es como múltiples
eventos trabajan juntos. Y si quieres desvincular
algún evento, sí, puedes. Para eso, necesitas
escribir botón tn punto Desenrollar botón uno Quiero decir, ahora, si haces clic en este botón, no
va a imprimir
nada. Déjame mostrarte. Entonces para satisfacer en este
código en mi terminal, y si sostengo mi cursor, ahora se puede ver una impresión, mouse ingresado, mouse deslizado Pero si hago clic en él,
como pueden ver no
funciona porque aquí
desvinculamos este evento Espero que ahora
te quede claro cómo podemos usarlo. Gracias por ver este video Stune para el siguiente tutorial
28. Enfoque, grab y estado del widget: Hola, chicos. Es
bueno verte de vuelta. Este es el último tutorial
relacionado con el manejo de eventos, y en este tutorial, vamos a aprender el enfoque, agarre y el estado del asistente. Ahora, hablemos de enfoque. El enfoque determina qué evento de teclado
recibe el asistente. Sólo un mago puede
tener foco a la vez. Y si hablo de métodos de enfoque
comunes, entonces tenemos set de enfoque. Da
enfoque de teclado a este asistente. Entonces tenemos puerta de enfoque. Está escrito el mago
que actualmente tiene foco. Por fin tenemos fuerza de enfoque, trabajo de enfoque de
fuerza, incluso
la ventana no está activa. Estudiemos la táctica
y veamos cómo funcionaba el enfoque. Como puedes ver, estamos
en mi editor de código de estudio y ya creamos un archivo
Python y ya
creamos un archivo Python focus
dot pi y creamos una
ventana básica simple usando Kiner Ahora voy a
tomar dos entradas en forma. Entonces aquí, voy a tomar
total dos campo de entrada, y ya empaco
estos dos campos de entrada, Entrada uno y entrada dos. A continuación, quiero crear un botón. Y cada vez que
presionamos el botón, se va a enfocar,
va a poner el foco en la entrada dos. Para eso, voy a
definir un botón variable, botón igual a,
voy a definir botón. Botón y presiono
este botón en una ventana raíz y
nuestro botón toma esta entrada de enfoque dos Apricma
en nuestro parámetro común, usamos una función Lambda Entrada Lambda dos puntos, conjunto de enfoque. Aquí usamos el método de conjunto de enfoque para establecer el enfoque en el botón dos. Siempre que presionemos el botón, esta función Lambda va a
establecer el foco en la entrada dos. Después de eso, voy
a empacar este botón. Tecleo el método de paquete de puntos de botón, y voy a configurar este. Ahora, volteemos el
código en nuestra terminal. Arriba este código en nuestra terminal, aquí puedes ver por defecto, no
hay foco
en nuestro campo de entrada. Pero si hago clic en la entrada de
enfoque dos, como pueden ver, después de
hacer clic en este botón, empieza a
enfocarse en el campo de entrada dos. Si hago clic en fuera de esta ventana en cualquier lugar
fuera de esta ventana, pierde su foco. Ahora, pongamos el foco
en el campo de entrada uno. Cuando hago clic en este
cuerpo exterior de esta ventana, quiero enfocarme en el campo de
entrada uno. Volvamos al
código. Para eso, voy a escribir entrada un punto set focus, y
voy a establecer este archivo. Si reune este código, ahora puedes ver Default Bifaul su conjunto se enfoca en el campo de
entrada Si hago clic en este botón, ahora se enfoca en el campo Entrada dos. Ahora vamos a unir con una prese clave para mostrar
el foco actual Para eso, voy a
usar el método root dot bind. Aquí, voy a atar root dot bind y
utilizo cualquier método clave, y a esta función llamo a esta
función show focus. A continuación, necesitamos
definir esta función. Yo para definir la función, muestran foco,
incluso igual a ninguno. Después inserte este método, aquí necesitamos obtener
el foco actual. Para eso, voy a
definir una corriente variable,
corriente igual a puerta de enfoque de punto
raíz. Aquí utilizo método, método puerta de
enfoque para obtener
el cual está enfocado. A continuación, quiero fijar el
estado actual del tipo print, foco
actual está en coma canina voy
a establecer esta fide Si ejecuto el código
en nuestro terminal, ahora, si presiono alguna tecla, una tecla como
voy a presionar A, ahora se puede ver imprimir, foco
actual está en la entrada. Si presiono este botón y
presiono cualquier tecla como G, ahora imprimo, el
enfoque actual está en la entrada dos. Aquí vinculamos el foco
con keywote event y obtenemos y
obtenemos el valor de enfoque
. ¿Cuál está enfocado? ¿Qué campo de entrada está enfocado? Ahora hablemos de agarrar. Captura todos los eventos
para un asistente específico. Es útil para modelos de diálogos
donde se desea bloquear interacción con otras
ventanas, de lo contrario, magos Quiero decir que va a crear otra ventana diferente para ejecutar otra cosa. Hasta que no cierres este, no
podrás volver
al original. Si hablo de su método, tenemos el método grab set, grab release method,
grab current method. Método de conjunto de agarre, captura
todos los eventos hasta que se lancen. Agarra la
liberación, suelta el
agarre y la corriente de agarre devuelva el
mago que tiene agarre. Déjame mostrarte la
demostración de cómo podemos usarlo. Nuevamente, vuelvo al editor de código de estudio de mis
usuarios y creo un archivo Python, agarro el punto pi y creo
la ventana básica. Al principio, voy a definir
un botón que va a
mandar para abrir una nueva
caja de modelo, de lo contrario modelos. Soy algunos definen el botón
botón igual a botón. interior lo colocamos
en una ventana raíz, entonces nuestro
texto de botón es modelo abierto, y va a comandar
este método, modelo abierto. Esta función, modelo abierto, y empaco este botón. Ahora necesitamos definir
podríamos definir esta función. Entonces aquí voy a definir la función, Dave modelo abierto. Entonces dentro de este capó matemático, aquí voy a
definir la caja modelo. Para eso, para crear el cuadro de
modelo que voy a usar, voy a definir
un modelo variable, modelo igual a etiqueta superior, y voy a
pasarlo en una ventana raíz. Entonces voy a establecer título y la geometría
de este modelo. Entonces después de definir el
título del modelo y la geometría del modelo, voy a establecer una etiqueta. Etiqueta y coloco
esta etiqueta dentro del modelo y digo texto
y dije texto de nivel, ciérrame antes de regresar
a la ventana principal. Tenemos que cerrar el modelo antes de regresar a
la ventana principal. Después de eso, necesitamos
crear el botón de cerrar. Entonces aquí, voy a
definir el botón cerrado. Y como se puede ver,
dentro del comando, utilizamos el método model dot destroy. Este método va
a destruir el modo. A continuación, necesitamos capturar
todos los eventos para esta ventana. Para eso, necesitamos usar el método de conjunto de agarre de puntos
modelo. Entonces aquí, voy a
definir el modelo punto grab set. Captura todos los eventos
para esta ventana. Después de eso, a abrir la ventana, tenemos que darle
foco a este modo. Para eso, necesitamos usar el método
Model dot set focus method. Aquí voy a definir el modelo punto set focus para
darle foco al modelo. Después de eso, voy a asignar una pausa de ejecución
hasta que Model cierre. Para eso, necesitamos
usar el método de ventana húmeda, algún tipo modelo ventana húmeda, y la voy a colocar
dentro del modelo. Voy a establecer este
archivo. Se configuran este archivo, encuentra en este código
en nuestro terminal, y como puede ver
en nuestra ventana, tenemos un botón
nombre modelo abierto. Si presiono este botón, como pueden ver, se
abre una ventana de modelo. La caída de lástima también fijó un foco en
esta ventana del modelo. Por eso se destaca. Y como te dije, aquí
uso el método grab dot set. El método del conjunto de agarre
fuerza todos los clics y la pulsación de teclas a la
ventana del modelo, no a esta ventana Si trato de hacer clic en este botón, como pueden ver, no funciona. Ahora éste está activo. Ahora tenemos todo el foco en esta ventana hasta que
cierras la ventana. Entonces si presiono el botón cerrar, de
lo contrario, lo cierro, entonces hemos recuperado el
foco en la ventana principal Ahora, de nuevo, podemos hacer clic en este botón y
abrir un nuevo modelo. Entonces esto es lo que podemos
hacer con el método Grab set. Ahora déjame mostrarte otra
demostración de grab. Aquí voy a usar el método
Grab Release. Así que aquí creo otro archivo
Python grabto punto Pi, y aquí voy a
explicar cómo podemos usar método
Grab set y grab
Release juntos Al principio, dentro de esta ventana, voy a definir un botón. Entonces aquí defino un botón
simple usando esta variable BTN y escribo, haga clic en M. Entonces entonces voy
a definir otro botón, que va a
desencadenar el evento de bloqueo Entonces defino este botón, botón y pruebo este botón en una ventana raíz y nuestro
botón toma evento grab. Y éste y este botón mandan esta
función, log event. Ahora, tenemos que trabajar
en esta función. Necesitamos crear
definir la función. Pero voy a
definirlo más adelante. Vamos a crear otro botón. Aquí voy a
crear otro botón, ¿cuál va a
liberar el evento grab? Para eso, nuevamente,
defino este botón y nuestro texto de botón es
release event y va a comandar este
método, release event. Hasta eso voy a usar un
nivel para imprimir nuestro estado. Defino una variable status, status igual a nivel y lo
coloco en una ventana raíz y nuestro texto no es grab active
y empaco este estado. Hasta eso voy a definir evento de
registro y función de evento de
lanzamiento. Hagámoslo. En nuestra función de
registro de eventos, voy a configurar el Grab. Dentro del método Log event, button dot Grab set. Ahora, después de que Grab esté activo, ticks solo funcionan en este botón. Quiero mostrar el
estatus en nuestro nivel. Para eso, necesitamos
configurar esta stata. Voy a etiquetar estado punto
Cfig y cambio el texto
del estado igual a texto
igual a grab está activo Da click en W en este botón. De la misma manera, tenemos que
trabajar en el método release event. Entonces aquí, voy a definir
este evento de lanzamiento de evento, evento cinta, lanzamiento de agarre de punto de
botón. Después de agarrar liberado, también
va a cambiar el estado. Para eso, de nuevo, a tipografía punto config texto
igual a agarrar liberado Puedes hacer clic en cualquier lugar. Y voy a poner este archivo. Ahora vamos a ejecutar el
código en nuestra terminal. Alguien que presione el botón Ejecutar. Como puedes ver se abre esta ventana y
tenemos múltiples botones. Ahora puedes ver en nuestro
estado, no grab active. Ahora voy a dar click
en el evento de lanzamiento. Si marco Evento de liberación, ahora imprime, agarra liberación. Puedes marcar en cualquier lugar. Ahora somos capaces de hacer
clic en cualquier lugar. Podemos presionar el botón de
evento de nuevo. Pero si haces clic,
agarra el botón par. Ahora, nuestro estatus ha cambiado. Imprimo, agarrar está activo. Los clics solo funcionan en este botón. Ahora bien, si trato de
establecer, no es trabajo. Incluso trato de presionar
el botón SEM, agarrar incluso, aun así no es trabajo. Es sólo trabajo en
esto, haga clic en el botón. Quiero decir sin agarrar, todos los botones están funcionando bien. Pero con solo agarrar, haga clic en el botón
responder. Éste. Si hago clic
en cualquier parte de nuestra ventana, aún reza, haga clic en el botón M. Hasta que soltemos el agarre, se ignoran
otros botones. Esto es lo que
podemos hacer con el cangrejo. Esto es para este tutorial. En el siguiente tutorial, vamos a hablar
sobre el estado del mago. Gracias por ver este video. Estén atentos para nuestro
próximo Tutorial.
29. Estado del widget: Oigan, chicos, me alegro de volver a verles. Este es otro tutorial
relacionado con el manejo de eventos Kiner. Hoy en este
tutorial, vamos
a aprender el estado del mago. La opción de estado en inter
asistentes controla si un asistente está deshabilitado o
un estado especial de Hobart Si hablo de
los estados comunes,
normales, inhabilitados y activos. Normal es completamente funcional. Desactivar nivelación
no se puede hacer clic o escribir T. Un activo es
especialmente utilizado para el estilo, Henry mouse flotar sobre él Ahora déjame mostrarte un ejemplo
con el botón Wizard state. Como puedes ver, editor de código REM
studio, y aquí creamos un
simple archivo Python. Buttonse buttonndersco
statate punto pi y Al principio, voy
a definir un botón. Aquí voy a atar VTN igual a botón y lo voy
a poner en una ventana raíz, y aquí dije
botón gusto habilitar También, llamo a una
función Lambda usando parámetro
común Lambda
y va a pintar esta declaración, kit de
botones. Entonces empaco este botón. Así que cada vez que
presionamos este botón, va a imprimir este botón de línea haga clic
en nuestra terminal. A continuación, necesitamos crear otro botón de alternancia que
vaya a activar una función. Entonces aquí, voy a definir
otro botón de alternar, botón alternar igual a botón, y nuestro texto de botón es
habilitar y deshabilitar. Y este botón va a activar esta función botón de alternar. Ahora bien, esta función
va a desactivar y habilitar este botón,
el primer botón. Entonces aquí, voy a definir la función, dap botón de alternar. Y dentro de esta función, voy a usar condición de cadera. botón Herodoty I dentro del cuadrado s es estado
igual a igual a normal Si este estado es normal, entonces dentro de esta condición de cadera, voy a
configurar el botón. Voy a configurar
esta variable de botón. Aquí, voy a configurar
total a parámetro. Entonces para escribir tn dot config dentro
del proceso round, primero, voy a asignar un
nuevo estado de parámetro, y voy a
hacer que se deshabilite. Además, voy a
cambiar el texto de este botón
que está deshabilitado. Es trabajo si la condición
coincide con esto, si es normal. Entonces en nuestras condiciones s en nuestra condición aquí
configuro button dot config, State become normal egging
y text enable egging Ahora nuestro botón de palanca
es como un interruptor. Primera vez si lo presionamos, luego va a
desactivar el botón y si vuelvo a presionar el botón de
alternar, va a la normalidad el botón. Vamos a establecer el archivo y ejecutar
el código en nuestro tiempo. Arriba para ejecutar este código,
como puedes ver, tenemos un botón llamado Enable. Si presiono el botón Activar, ahora puedes notar en nuestro terminal botón de impresión
pateado. Ahora funciona bien. Pero si hago clic en Desactivar ahora este botón el estado
se convierte en desactivar. También, se puede ver en
este botón el texto. Ahora si trato de presionar el
botón, no va a funcionar. Pero si vuelvo a presionar el
segundo botón, ahora se vuelve habilitar de nuevo. Ahora funciona bien. Este es el ejemplo
del estado del botón. Ahora déjame mostrarte otro
ejemplo con entrada iz estado. Como pueden ver, creo otro
asistente de entrada de archivos Python underscostate dot Pie y creo una ventana básica
simple Al principio, voy a
tomar un asistente de entrada, algún tipo de entrada igual a entrada, y empaco esta entrada. Entonces voy a
definir un botón, que va a llamar a
bloqueo y función Lo. Voy a definir el botón, botón igual a
botón
y nuestro botón toma esta entrada de registro y comando, y va a llamar a
esta función, Desbloqueo de registro. Entonces empaco este botón. Después de eso, necesitamos
definir esa función. Entonces voy a definir la
función, Dave, bloquear desbloquear. Entonces dentro de esta función, voy a usar bcdion Aquí voy a escribir I entrada, estado igual a normal, después quiero configurar
el asistente de entrada. Aquí, necesitamos escribir
entrada punto config, estado igual a deshabilitado. Voy a hacer que se deshabilite. Además, voy a
cambiar el texto del botón. Voy a lograrlo.
Botón punto C fig t igual a la entrada de desbloqueo. Entonces en nuestra parte s, algún tipo s dentro de
la condición s, voy a hacer que
este sea normal. Entrada punto config,
voy a hacerlo normal y también quiero
cambiar el texto del botón. Así que escribo botón punto C fig
t igual a la entrada de bloqueo. Voy a establecer este archivo.
Después de configurar este archivo, voy a ejecutar este
código en nuestra terminal. Después de presionar el botón Ejecutar, aquí puedes ver
nuestro campo de entrada. Ahora bien, si trato de entrar en
algo como ABCD, lo que sea, ha funcionado bien Pero si registro esta entrada, si hago clic en este
botón Log, botón LogEntry, ahora puedes ver ahora no
podemos poner nada ni eliminar nada
de este feed de entrada Y si quieres
desbloquearlo una y
otra vez presionar este
botón, desbloquea la entrada. Ahora se vuelve a desbloquear de nuevo. Ahora puedes hacer
lo que quieras. Entonces este es el ejemplo
con asistente de entrada. Ahora déjame mostrarte
el último ejemplo. Ahora en este ejemplo, vamos a
hablar de estado activo. Creo un archivo Python
activo underscostate punto Pi. Como te dije antes, el estado activo es principalmente para botón de
estilo cuando
flotaba o lamió Déjame mostrarte el ejemplo. Al principio, voy
a definir un botón. Entonces como pueden ver, aquí
defino un botón,
y nuestro botón se hace cargo de esto sobre mí, y nuestro botón, el color de
fondo del botón es azul claro. Y empaco este botón con relleno de
20 píxeles en YxS. Ahora, después de configurar este archivo, si hago clic en este botón,
aquí se puede ver el botón. Si hago clic en este botón, puede ver cuando
el botón se activa, el
color de fondo del botón se vuelve gris. Puedes ver el color de
fondo gris en este botón porque
es el color predeterminado, pero quiero cambiar el color cuando el
botón se active. Ahora el botón es un estado
activo porque presiono mi labio tick de mi
mouse sobre el botón. Si la levanto, nuevamente, se
convierte en estado normal y su color de fondo
se vuelve azul claro. Entonces quiero cambiar el color de fondo
activo. Para eso, necesitamos
usar un parámetro llamado Bagram
activo y aquí le
asigno color verde claro Ahora, después de subir este archivo, si resmo este código e
intento hacer clic en este botón, si activo este botón, ahora se puede ver que el color de
fondo se vuelve verde verde claro Entonces de esto es de lo
que estoy hablando. Este es el uso
del estado activo. Espero que ahora te quede claro. Así que gracias por
ver este video. Estén atentos para nuestro próximo capítulo.
30. Miniproyecto de aplicación de dibujo con método de evento y enlace: Hola, es bueno
verte bolsas. Hoy, vamos a crear una aplicación intter simple
usando el método bind Básicamente, quiero mostrar
cómo podemos usar el
método de bilis en nuestros proyectos. Aquí, vamos a crear
una sencilla app de dibujo. Puedes dibujar líneas
usando tu mouse. Usando el ratón, dibuja la
línea en el lienzo. Además, puedes cambiar el color de la pintura cuando colocas una llave en particular. Déjame mostrarte
la demostración lo que vamos
a construir hoy. Como puedes ver, esta es
nuestra ventana raíz principal. En esta ventana,
tenemos un lienzo, y luego tenemos una etiqueta. Ahora, el color actual se selecciona negro. Este
es el valor por defecto. Si trato de trazar una línea, ahora puedes verla dibujar
una línea en nuestro lienzo. Para trazar una línea, necesitamos mover nuestro mouse
dentro del área del lienzo. Entonces tenemos que presionar la tecla
izquierda y arrastrar nuestro mouse. Eso
va a trazar una línea. Ahora puedes notar que dibuja
la línea en color negro. Ahora quieres
cambiar el color. Ahora decides que
vas a usar el color rojo. Si presiono R, como
pueden ver en nuestra etiqueta, se imprime el color actual rojo. Ahora bien, si trato de dibujar una línea, se
puede ver la línea de color rojo. la misma manera, si
quieres usar color verde, entonces necesitas presionar G. Ahora puedes verlo dibujar
una línea en color verde. Si quieres amarillo,
necesitas presionar Y. Ahora el color actual es amarillo. Se puede ver la línea de yemas. Para el azul, es necesario presionar B. Ahora el color actual es azul. la misma manera, si
quieres púrpura, ahora el color actual es el morado y dibujas una línea
con color morado. Si quieres volver a color
negro, en ese caso,
necesitas pasar K. Así como puedes ver, podemos cambiar color y podemos dibujar línea. Es una aplicación de dibujo muy simple, y creo esta
aplicación con la ayuda del método
Bind para entender
cómo funciona el método bind,
cómo funcionan los eventos de teclado y
cómo funcionan los eventos de arrastre del mouse. Entonces comencemos la práctica. Por último, vamos
a empezar a codificar. Como puedes ver, creamos el proyecto de archivo
Python punto pi. Primero, importamos el
módulo Kiner, importamos todo. Después creamos la ventana principal. Al principio, aquí creamos
una variable de instancia de clase
TK y la
variable es root. Ahora la raíz se convierte en la ventana principal. Entonces establecemos el título del punto raíz y aquí decimos
nuestro nombre del proyecto, dibujamos y cambiamos de color
con el método bind. A continuación, establecemos una geometría
a esta ventana, W 500 y altura 400. Por fin ejecutamos nuestro bucle principal. Ahora, al principio, necesitamos crear un lienzo para el área de dibujo. Para eso, voy a definir una variable y nuestro nombre de
variable es Canvas. Así atar Lona igual a lona. Entonces dentro de la brra redonda dice, voy a poner este
lienzo en la ventana raíz, después dije color de fondo Nuestro
color de fondo de lona es blanco. Después definimos ancho
de este lienzo ancho 480 píxeles y alto, 320 píxeles. Después de eso, voy
a empacar este lienzo. Tipo canvas dot pack y aquí
le asigno algo de relleno en YxS
voy a configurar este archivo Después de configurar este archivo, si
ejecuto este código en nuestra terminal, es como se
ve nuestra área de canvas en esta ventana. A continuación, e imprima una etiqueta de estado
para el color de fondo. Entonces aquí, voy
a definir una etiqueta. Entonces para escribir
etiqueta de estado igual a etiqueta, y la ponemos en una ventana raíz, y aquí, voy a poner este texto, color
actual negro. Entonces empaco estado,
esta etiqueta de estado. Si configuro este archivo y ejecuto
esta ventana en una terminal, ahora puedes ver
la etiqueta de estado. El color actual es el negro. Este sería el
color por defecto para nuestro pincel. Después de eso, necesitamos
almacenar el color actual. Necesitamos almacenar el
color actual en una lista mutable, para que pueda cambiarse
en función Primero, voy a escribir
un sencillo y comentar. El color actual se almacena
en una lista mutable, por lo que se puede cambiar
en funciones Entonces voy a iniciar el color
actual en una lista, y voy a
cambiar el
color actual usando una función. A continuación, necesitamos atar el
lienzo y tenemos que
llamar a un evento que va
a dibujar en este lienzo. Para eso, herotyp un comentario, bind mouse drag para dibujar Entonces voy a atar el método
Canvas dot bind, y dentro de las runras
aquí uso este evento común Aquí utilizo este
evento de ratón B un movimiento. Es un arrastre medio del ratón
con botón de elevación. Entonces, cuando desencadenó este
evento usando nuestro mouse, entonces va a llamar a
esta función draw. Así que aquí uso el evento del ratón. A continuación, voy a usar un evento de
teclado para
cambiar el color, para cambiar el color
de nuestro pincel. Para eso, necesitamos
escribir Root dot bind y dentro de los rounders herro
usar este evento clave de evento Es decir cualquier
evento clave y va a y va a activar
esta función, cambiar de color. Ahora, de acuerdo a
la posición del ratón, esta función de dibujar
va a dibujar la línea. Para eso, voy a
definir la función. Aquí, voy a definir función de
dibujo, tap draw. Y voy a pasar el evento. En nuestro caso, un movimiento
incluso un evento de movimiento. Se activa al
hacer clic del ratón y arrastrar sobre este lienzo. A continuación, extraemos la posición XX y
YXS de nuestro Carson. Para eso, voy a
definir dos variables X e Y, X igual al evento X e
Y igual al evento Y, y almacenamos las coordenadas
en esa variable. A continuación, tenemos que trazar líneas. Para eso, necesitamos
usar create like method. Entonces escribe, Lienzo, Lona
punto, Createine, esta. Luego dentro de los versos redondos, al principio, necesitamos
definir el punto de inicio. Voy a pasar XX es
valor y YxS ancho. Así que pasa X, Y. Este es el punto de partida. También adentro para pasar el punto final. Para eso, hasta coma
y quiero crear
el punto final a solo un píxel de
distancia para crear un punto diminuto. Para eso, voy
a más X con uno. Voy a agregar un testamento
con cada coordenadas. Y más uno. Después coma superior, voy a definir
el color de relleno Para relleno de color de relleno igual a aquí voy
a usar color actual. Este, el
color actual que definimos. Copio el valor, color
actual, variable, y aquí voy a
asignar color actual, control V. Luego dentro los reces cuadrados voy
a definir el índice Como se puede ver a la vez, proporcionar que va a
pasar sólo un valor. Voy a pasar el
índice número cero. Entonces hay que definir. Con del trazo de línea. Para eso, voy
a escribir con, voy a usar tres pix. Voy a establecer este
archivo. De la misma manera, voy a definir
otra función. Voy a escribir Dave y esta función es para
cambiar el color de cambio de color. Dentro de las rondas, voy a pasar el teclado, evento de teclado
real. Entonces dentro del polen aquí voy a teclear fa,
voy a teclear pass. Y voy a poner este
archivo. Ahora voy a configurar este archivo y ejecutar este código
porque necesitamos verificar, es dibujar nuestra línea
correctamente o no. Por defecto, como te dije, va a seleccionar
el color negro porque el pelo es negro, color
actual negro. Entonces voy a ejecutar este archivo. Y si pongo el cursor sobre
él en este lienzo y lo coloco, haga clic y arrastre, como
puede ver dibuje una línea Entonces aquí
trazamos con éxito una línea. Ahora solo hay que cambiar el
color. Vayamos al código. Ahora puedes notar aquí
usamos evento de teclado. Siempre que alabemos alguna
tecla de nuestro teclado, va a activar
esta función. Ahora, necesitamos
obtener el valor clave, cuya clave es elogiada. Para obtener el valor, aquí
voy a definir una
variable llamada key, key igual a event
dot character, y voy a convertir este
carácter en minúscula Yo uso un tipo R, va a
convertirlo en minúscula Después de eso, voy a
definir un diccionario de color. Para eso, voy a definir una variable colores iguales
a colores iguales a
dentro de los Cles A él le asignamos un diccionario. Para R, el valor del diccionario es rojo. F G, es verde. Para B, es azul, Y es amarillo, para Ps púrpura, para O es
naranja y para K es negro. Ahora necesitamos cambiar el color actual
con colores seleccionados. Para eso, voy a usar condición
EP si K en colores. Entonces dentro de esta condición EP, color
actual igual
a colores punto K. Aquí seleccionamos el índice de color
actual, que es cero y voy a reemplazar con cualquier
valor que pasemos. Supongamos que si el usuario presiona G, entonces va a reemplazar
el color actual negro G. Aquí accedemos al
color usando diccionario, colores, y dentro
de las bases cuadradas pasamos el valor clave. De este diccionario,
va a obtener el valor y reemplazar el color
actual con eso. Después de eso, también quiero
cambiar el color de estado. Para eso, aquí, voy a escribir etiqueta de estado
punto config Método. Y primero, voy
a cambiar el texto, y utilizo Epstring color
actual dentro de
los autos dentro del
rebaño Carlss pasan el color actual Color actual dentro del índice de cero de resis
cuadrada. Ahora bien, si se vuelve verde, lo contrario azul,
reemplazaría el negro por
azul de lo contrario verde. Además, tenemos que
manejar el error. Si el usuario pasa alguna otra
tecla como la tecla scape, tecla Mayús, cualquier otra tecla,
necesitamos manejarla. Tenemos que imprimir el valor. Para eso, en nuestra parte s, dentro del bloque s, voy a escribir status
level.com text igual a nnn key, y aquí vamos
a imprimir la ¿Qué tipo de usuario de valor? Supongamos usuario tipo
A, no coincide con
nuestro diccionario. Entonces va a
imprimir la clave de monja A, y voy a poner este archivo Después de configurar el archivo,
ejecutemos el código en nuestro terminal y veamos
si funciona correctamente o no. Entonces ejecuto este código
en mi terminal y aquí puedes ver
la ventana de Canvas. Por defecto, el
color actual es ese. Si dibujo alguna línea, dibuja la línea en color negro, pero quiero usar color rojo. Para eso, necesitamos usar, voy a presionar el comando R. Cuando presiono R, ahora puedes
ver que el color actual es rojo. Ahora si dibujo una línea, ahora se puede ver que el color de la
línea es rojo. la misma manera, si
quieres cambiar el color, como si quieres
usar color verde, entonces necesitas presionar
G. Ahora si dibujo una línea, puedes ver la línea de color
verde. Si quieres azul, entonces
necesitas presionar B y aquí puedes ver
la línea de color azul. Si quieres naranja,
entonces puedes presionar O. Ahora puedes ver la línea de color
naranja y si quieres negro de nuevo, entonces necesitas alabar
K. Después de presionar K, ahora puedes ver la línea de color
negro nuevamente. Así es como puedes cambiar de
color en nuestro lienzo. Espero que les guste
este pequeño proyecto. Gracias por ver este video, estad atentos para nuestros próximos estudios.
31. Variables Tkinter y enlace de datos: Hola, chicos. Un placer
verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial, y hoy en este tutorial, vamos a aprender la
variable Kiner y el enlace de datos Kinar proporciona clases
variables especiales tales como artículos de cuerda,
intvariable, artículos dobles, artículos
booleanos, Ya estamos familiarizados con eso. Básicamente, es actuar como un envoltorio alrededor de los valores
normales de Python, y estos permiten ponderar el
enlace de datos entre su código
Python y los asistentes decir, cuando la
variable cambia, el asistente se actualiza automáticamente cuando cambia el valor del asistente, la variable
se actualiza automáticamente. Si te mostramos las clases
variables, estas son todas clases variables. Ya estamos familiarizados
con eso y ya lo usamos en nuestros tutoriales
anteriores. Stringwar Itware, double ware, Bollenware, stringwar
almacena texto lo contrario cadena, como hola, Itware solo aumentadores de tienda,
como 42, doble ware,
almacenar números flotantes, como almacenar números flotantes Y los booleanos se almacenaron
a través y cae. Ahora déjame mostrarte un ejemplo donde voy a usar
todo tipo de variables. Como puedes ver, aquí defino una
ventana básica de Kinker simple en este archivo Python,
y nuestro nombre de archivo Python es KinkerUnderscore Al principio, dentro de esta ventana, voy a definir
algunas variables. Voy a definir variable de
cadena, variable incisiva, variable doble y
variable Bollin Al principio, voy a
definir variable de cadena, string eran iguales
a Tkt string ware y dentro de la corrida brrass
aquí dije valor, siguiente, voy a definir
Itiser variable, intvare igual a tat en
ware y voy a establecer
el valor y aquí voy a establecer la cinta de valor A continuación, voy a
definir la doble vajilla. Quiero establecer
el valor femenino. Los dobles son iguales
a k artículos dobles. Dentro del rundress
valor igual a 3.14, y por fin, voy a
definir el Booleanos fueron iguales a tk valor
Bollenvre igual a true. A continuación, voy a definir algunos sts que se unan
a las variables. Para eso, pasé voy
a escribir un solo comando en, UZxS ligado a variables A continuación, voy a tomar
campo de entrada para la variable string. Entonces escribe t dot jury y voy a colocar el
campo de entrada en esta ventana raíz. Entonces toma variable igual a string were y
empaco esta variable. Para la variable intsor,
voy a usar caja de giro. Voy a atar t spin Box, voy a
colocarla en una ventana raíz. Aquí voy a
establecer valor mínimo, quiero establecer desde el
valor cero y el valor más alto 100,
dos valor 100. Y voy a establecer la variable
sabor int ware. Es media diez. Por defecto, ya selecciona diez. A continuación, voy a tomar otro campo de entrada
para la taquilla. Escriba entrada de boleto, y voy a
colocarlo en una ventana raíz y tomar variable igual a Dwelwre Empaque este Después de eso, después de eso
para la vajilla Bullen, voy a tomar
un botón de cheque Botón de verificación de punto T, voy a
colocarlo en una ventana raíz, y nuestro botón de verificación lleva esta edad aquí
dije la variable, Viable igual a wollen war Ha sido cierto o falso. Ahora puedes notar cada
asistente vinculado a una variable. Ahora después de establecer este archivo, si ejecuto este código
en nuestro terminal, se
puede ver el resultado. Este es nuestro primer campo de entrada. Este es el cuadro de giro, este
es nuestro segundo campo de entrada, y este es el botón de verificación. Después de eso, voy
a definir un botón. Eso va a desencadenar
una función y
podría imprimir todo el
valor en nuestro terminal. Entonces aquí voy a
definir el botón. A los botones, y
voy a pasar el botón
en una ventana raíz, texto igual a mostrar valores. Entonces comando igual a mostrar valores, y
empaco este botón. Y ahora necesitamos definir la función
show value. Entonces copia el nombre de la función, y yo voy a definirlo aquí. Muestran valores, luego
dentro de esta función, el interior de esta función, voy a imprimir todo
el valor de la variable, como la variable string, la variable
int, la variable Dual
y la variable booleana Entonces para la primera variable, voy a escribir print string y hemo type stringw dot gate Usando el método string dot Gate, podemos obtener el valor
de esta variable. Eso ya lo sabemos. Trato de mostrarte eso
y de la misma manera, obtengo todos los valores de variables
como int valor variable, valor variable
doble y valor de variable
booleana Necesitamos usar gatewthod
para obtener el valor de una variable.
Voy a establecer este archivo. Después de configurar este archivo,
si ejecuto este código en mi terminal y presiono
el botón, mostrar valor. Ahora puedes ver en mi terminal, imprime
todo el valor de la variable. Cadena hola, en diez, doble 3.14 y booleano Si no estoy de acuerdo este
botón de verificación y y elogio, así que de nuevo, ahora puedes ver en nuestra
variable booleana cae Este es el ejemplo
con todo tipo de variable. Espero que ahora te quede claro. Ahora, déjame mostrarte
otro ejemplo. Ahora, déjame mostrarte
otro ejemplo con actualización en tiempo
real usando el método
dot trace add. Un objeto un poco variable como stringware intserware
tiene un método llamado dot trace add que ejecuta
una función automáticamente
cada vez que una función automáticamente
cada vez Se ejecuta automáticamente. Déjame mostrarte cómo podemos usar. Entonces primero, voy a
definir una vajilla de cuerda. Para eso, voy a definir una variable text ware igual a tdt string ware Hemo no
dijo nada como Después de eso, voy
a tomar un campo de entrada. Aquí tomo el
campo de entrada en la variable de entrada, y até este campo de entrada
con esta variable de texto. A continuación, voy a definir una etiqueta que va a
imprimir el valor actual. Voy a escribir label
igual a tkdot label, y lo coloco en una ventana raíz, y es texto, escribo
algo arriba Y uso una fuente real
y el tamaño de fuente es 14. Y luego empaco esta etiqueta. Ahora para activar la función
trace at, no
voy a usar ningún botón. Voy a atar
artículos de texto, punto, rastreo en. Aquí utilizo el método. Texto ware punto, rastro en. Dentro de la runbra dice escribir, y yo llamo a esta
función en texchange Cuando escribo algo
en el campo de entrada, va a poner el
valor actual a esta variable. Básicamente, la variable de texto enlaza
tanto a la entrada como a la función web de
llamada. Y cuando la variable cambia
dentro del campo de entrada, este método se activa y
llama a esta función. Y ahora necesitamos definir
el texto sobre el método de cambio. Esta función, Suntpe
Dave texto sobre el cambio. Dentro de las rondas,
aquí utilizo arcos estelares. Si no te
importa el parámetro extra, puedes usar arcos estelares Después de eso, configuramos
esta etiqueta level dot config, level dot config, y quiero
cambiar el texto a value. Selecciono el
parámetro de texto, y dentro de él, uso el valor de corriente Estre
dentro de la calibración, necesitamos obtener el
valor actual usando el método de puerta Escribo puerta de dos puntos. Y si configuro este archivo y
ejecuto este código en mi terminal, aquí puedes ver la ventana. Ahora bien, si escribo algo
en el campo de entrada, supongamos uno, dos, tres, cuatro, como pueden ver, instantáneamente
se imprime en nuestra etiqueta. Lo muestro en nuestra etiqueta.
Puedes escribir cualquier cosa. Podría ser un personaje,
punto, lo que sea. Este es el ejemplo
de actualización en tiempo real rastreamos el método. Se activó la función cuando se cambia el
valor de la variable. Trabajo sólo con variables. Esto es para este tutorial. Gracias por ver
este video,
mantente atento para nuestro próximo tutorial.
32. Bandejas de mensajes (messagebox): Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial, y hoy en este tutorial, vamos a trabajar
en los cuadros de diálogo. Kinter vienen con tres tipos
de cuadro de diálogo cuadro de mensaje, diálogo de
campo y selector de color Usando el cuadro de mensaje, puede mostrar información de advertencia y error, y usando el cuadro de diálogo de campo
puede abrir y guardar archivos. Y usando selector de color, puedes elegir cualquier color hoy en este
scutorial voy a hablar de buzón de mensajes. El módulo de cuadro de mensajes Kinter
se utiliza para mostrar el diálogo
emergente con mensaje
y botón opcional Si hablo de ello función
común, viene con función show
info. Se utiliza para mostrar información
Papa, luego mostrar advertencia. Se utiliza para mostrar advertencia Papa. Mostrar ero, se utiliza
para mostrar error papa. Hacer una pregunta. Está
escrito sí o no. Entonces pregunta o cancela. Está escrito a o Forbes. Entonces pregunta, sí, no. Está escrito a o falso también. Por fin hemos
pedido reintentar cancelar. Se escribe a través de o Fab. Empecemos lo práctico y veamos cómo podemos usar la caja de líos. Como puedes ver, estamos en
mi editor de código de estudio de usuario, y creo un
archivo Python main dot pie y aquí creamos una ventana
básica de Kiner A continuación, para usar caja de líos, necesitamos importar caja de líos. Voy a escribir desde
Kinter Import caja de líos. Después de ingresar el cuadro de mensaje, voy a definir un botón que va
a activar una función. Entonces para escribir pk botón de punto, y pruebo este botón
en esta ventana raíz y nuestro botón toma Ts,
mostrar cajas de masas. Y este botón
manda esta función, mostrar en. Ahora, necesitamos definir
esta función, mostrar en. Ahora, definamos la función. Entonces aquí, voy a definir
a Dave, mostrar todo dentro de la función. Aquí, al principio, quiero
mostrar información en
nuestro buzón de mensajes. Entonces para usar este método, cuadro de
mensaje punto Mostrar Info. Al principio, tenemos que
pasar el título. En nuestro caso, info. Entonces tenemos que pasar el mensaje de
información. Si configuro este archivo
y ejecuto este código en nuestro terminal y presiono este
botón, mostrar cuadro de líos. Mostrar cuadros de mensaje,
aquí puede ver la ventana de información, ventana de mensaje de
información. Si presiono Bien,
cierra esta ventana. Entonces este es el primer ejemplo
de cuadro de diálogo de mensaje. Ahora déjame mostrarte una advertencia. Quiero comentar esta línea, y aquí, voy a escribir mensaje boox
dot show warning Primero pasa primero
para pasar el título, luego para pasar los mensajes de
advertencia. Este es un mensaje de advertencia. Use este archivo si yo en
el código en mi terminal y elogio mostrar cuadros de mensaje. Aquí puedes ver
la señal de advertencia y este es un mensaje de advertencia. A continuación, tenemos mensaje de error. Comento esta mentira, y voy a mostrar
el mensaje de error. Voy a mostrar Showeror
mensaje box dot show error. Primero, tenemos que
proporcionar el título luego nuestro mensaje de error. Después de configurar este archivo,
si ejecuto este código en mi terminal y
presiono este botón, aquí puedes ver
el mensaje de error con signo de cruz, este icono. Ahora déjame mostrarte preguntas Quotien pero antes necesitamos
comentar esta línea y usar ask
quotienf voy a definir una variable y nuestra
variable m Contesta uno igual a los
líos boox dot pregunta a Quoc. Primero, para proporcionar
el cuotien del título entonces y después tenemos que preguntar el cocien ¿ Que pronuncie ese usuario
tiene dos opciones, sí o no. Para fijar la respuesta, voy
a escribir print statement. Dentro de las rondas está ask ui y voy a
pasar la respuesta, sí o no. Y
voy a poner este archivo. Configuré este archivo si ejecuto
este código en mi terminal. Y presiona este botón. Ahora este cuadro de diálogo como
cociente con signo de palabra. ¿Te gusta Python, sí o no? Si paso sí, como puedes ver, podrías
trentar terminalmente como Quotien Ahora déjame mostrarte
otro cuadro de diálogo. Pero antes voy a comentar
esta línea y aquí, voy a declarar otra
variable respuesta dos. Contesta dos iguales
a masas pantano punto como sn como título,
voy a pasar sn ¿Quieres continuar? En Askino si presionas sí, es media es verdad, y si presionas no, es media es falsa. Déjame mostrarte. Voy a pintar
la respuesta de valor a y voy a sub este archivo y ejecutar este
código en nuestra terminal. Arriba para ejecutar este código, si presiono
este botón, ahora pregunta, quieres continuar
si presiono sí, como puedes ver, cómo se
imprimió true. Pero si presionamos no,
entonces va a imprimir formularios. De la misma manera, de la misma
manera hemos preguntado o cáncer. Yo defino otra
variable respuesta tres, respuesta tres igual a dos, masas
cuadro punto preguntar, Bien, cáncer. Se utiliza para cambios, y también devuelve
a través de valor falso. Si imprimo el valor
en nuestro terminal y configuro este archivo y ejecuto este
código en nuestro terminal, si presiono este botón, como puede ver, ¿
quiere establecer cambios? Si presiono Cancelar, ahora puedes ver que la respuesta es falsa. Si presiono sí, si presiono sí, entonces
va a imprimirlo. Básicamente, lo usamos
para configuraciones de sap. Y por fin, hemos
pedido reintentar cancelar. Comento tanto la línea voy a
escribir respuesta cuatro. Contesta cuatro iguales a masas
box dot, pregunta reinténtalo Cancelar. Y como título,
voy a pasar reintento. Error al reintentar la conexión. Se pide reintento, y luego imprimo el id. también, este va
a devolver verdadero y falso en mi terminal, déjame mostrarte si
ejecuto este código en mi terminal y
presiono este botón, arroja mensajes de advertencia La conexión falló,
pedí que se reintentara. Si presiono reintentar, va a pasar Estos son el ejemplo de función
común de la caja de líos. En el siguiente tutorial,
voy a
hablar de otro cuadro de diálogo
que es el diálogo de archivos. Gracias por ver este video Tay tune para nuestro próximo tutorial.
33. Diálogos de archivos: Hola, chicos. Es bueno
verte de vuelta. Una vez más, estoy de vuelta con otro cuadro de diálogo
relacionado con el tutorial. Y hoy en este tutorial, vamos a aprender cuadro de diálogo de
archivo. En nuestro tutorial anterior, aprendemos caja de líos. Utilizamos el cuadro de mensaje para
mostrar información, advertencia, error, etcétera Pero en nuestro
cuadro de diálogo de archivos, podemos abrir archivo, podemos guardar archivo, podemos abrir múltiples archivos
ats, todo. El diálogo de archivos Kint permite al usuario
seleccionar archivos o carpetas. Y si hablamos de
ello funciones comunes, viene con un total de
cuatro funciones. Pregunte nombre de archivo abierto. Selecciono un archivo para abrir. Se usa para
un solo archivo y
va a devolver la ruta del
archivo como una cadena. Entonces tenemos Ask
Open nombres de archivo. Selecciono varios archivos. Está escrito par
de ruta de archivo. Entonces tenemos Pide
guardar como nombre de archivo. Lo usamos para seleccionar la
ubicación para guardar un archivo. Está escrito un archivo
string por fin, tenemos directorio ask. Se utiliza para carpeta selectiva, y devuelve una
ruta de carpeta como una secuencia. Entonces déjame mostrarte
la demostración de todas estas funciones. ¿Qué podemos hacer con eso? Entonces como pueden ver, estamos en
mi editor de código sult studio. Al principio, ingresamos a Kinar como TK. Luego creamos la raíz de
ventana básica y igual a Tika TK. Después después establecemos un
título a esta ventana, ejemplo de diálogo de
archivo, y
establecemos la geometría. 300 por 200 y por fin
ejecutamos el bucle principal. Al principio, voy
a crear un botón, Su ti tdt button class Después dentro de los ronbres
colocamos este botón
en una ventana raíz, luego texto igual a abrir
archivo y comando igual a, llamo a esta función abrir archivo, y luego empaco este botón Después de eso, necesitamos definir
esta función open file, así que copio el nombre de la función. Aquí voy a definir
la función, Dave,
abrir archivo, y dentro de
esta función, al principio, voy a definir una variable
llamada ruta de archivo, archivo, ruta guión bajo, ruta de archivo
igual a aquí, necesitamos usar diálogo de archivo Para ello, necesitamos
importar el cuadro de diálogo del archivo. Voy a escribir desde Kinard quiero
importar diálogo de archivo Ahora, quiero usar
ask open file name. Primero, necesitamos definir el
diálogo de archivo, el punto de diálogo de archivo. Desde el cuadro de diálogo de archivo,
quiero usar como nombre de archivo abierto. Luego dentro de las rotondas
luego dentro de la resis redonda, al principio, necesitamos asignar un título de título para
la ventana de diálogo Entonces escribe title Liqual
para abrir un archivo. Entonces una coma tras coma, necesitamos definir los tipos
de archivo Es importante. Así que
escriba tipos de archivo. Luego dentro de la base cuadrada, podemos definir tipos de archivos
particulares. Supongamos que si quieres
seleccionar archivo txt, archivo de texto, entonces necesitas
definir el nivel
del archivo archivo de texto, entonces necesitas
mencionar la extensión. Quiero decir el patrón de archivo. Para eso necesitas
escribir star dot TXT. Dot TXT es la extensión, y su estrella, significa cualquier cosa. Podría ser cualquier cosa.
Podría ser uno, dos, tres, punto TXT, podría ser texto, podría
ser símbolo, lo que sea. la misma manera, si
quieres seleccionar, otros tipos de archivos, supongamos que si
quieres seleccionar el archivo Python, en ese caso, primero, necesitas proporcionar el nombre de
nivel en nuestro caso los archivos
Python y luego
necesitas pasar la extensión. Como star dot py. Es para el archivo Python. Y si quieres acceder a
todos los archivos, en ese caso, necesitas escribir todos los
archivos, es la etiqueta, y para la extensión, necesitas escribir star dot star. Es victoria tras punto,
podría ser cualquier cosa. Podría ser TXT, podría ser Pi, podría ser
archivo Illustrator, PSD, lo que sea. Básicamente, aquí
creamos filtro punto abajo. Ese usuario puede seleccionar el tipo de
archivo entre
TextFile y el archivo Python Después de abrir la carpeta, si usa o selecciona el archivo Python, entonces va a mostrar solo el archivo Python de la carpeta, y si selecciona todos los archivos, entonces va a mostrar todos
los archivos de la carpeta. Déjame mostrarte
la demostración. Ahora, como puedes ver en
mi documento dri try, tenemos múltiples tipos de archivo,
como archivo PDF, archivo de imagen
JPG, archivo de imagen
PNG, archivo de Adobe
Illustrator, archivo de texto, archivo
Python, archivo CSS, archivo
script, y tmlfle También tienes archivo Photoshop. Ahora volvamos al código. Así que preestablece este archivo si ejecuto
este código en mi terminal, déjame mostrarte y ahora
puedes ver nuestro cuadro de diálogo de archivo, y tenemos un botón abrir archivo. Ahora, trato de abrir cualquier archivo, super click abrirlo abrir
Una ventana de archivo abierta. Este es nuestro cuadro de diálogo de archivo, y lo nombramos OpenAFLE Quiero acceder
a la carpeta de documentos Si abro la carpeta Documento, ahora
solo puedes ver el archivo de texto porque en nuestra sección de filtros, seleccionamos el archivo de texto. Ahora quiero seleccionar
el archivo Python. Después de seleccionar el archivo Python, solo
podrá ver el archivo Python de esta carpeta en esta carpeta. Si selecciono todos los archivos, ahora pueden ver todos los
tipos de archivos juntos. Ahora puedes seleccionar
cualquier archivo de esta carpeta. Aquí usamos los
dos tipos de filtro, Text TextFile filter
y Python file filter Ahora puedes seleccionar
todos los archivos Python. Ahora puedes abrir este archivo. Puede seleccionar este archivo.
También puedes abrir este archivo. Después de abrir este archivo, no se
puede ver nada aquí porque no hacemos
nada después de abrirlo. Después de abrir el archivo, vamos a
imprimir la ruta del archivo. Para eso, voy
a escribir condición IP. Si ruta de archivo, entonces si ruta de archivo, luego inserte esta condición IP. Quiero imprimir, imprimir, quiero imprimir la ruta del archivo. Después dentro del rundress
dentro de los códigos dobles, tipo
Hem, archivo abierto, luego coma superior,
luego Adocma quiero imprimir Variable de ruta de archivo. Voy a establecer este archivo.
Recuerde, esta función se utiliza para seleccionar solo un archivo. Después de configurar el archivo,
si ejecuto este código en mi terminal e intento
seleccionar un archivo, como quiero seleccionar
un archivo Python punto Pi, así que hago clic en Abrir. Ahora puedes ver mi terminal, imprimo la ruta exacta del archivo
desde donde abrimos el archivo. Imprime la ruta exacta del archivo
de este archivo como una secuencia. Ahora usando la ruta del archivo, somos capaces de abrir el
archivo y para abrirlo, necesitamos crear puntero de archivo y método abierto, etcétera No voy a usar
eso en este tutorial. Acabo de intentar mostrarte
cómo podemos usar el diálogo de archivos. A continuación, te voy a
mostrar cómo
podemos abrir varios archivos a la vez, cómo podemos seleccionar
varios archivos. Para eso, voy a definir otro botón, botón tiquetado, y nuestro texto de botón está abierto múltiples archivos y
mando esta función, abro múltiples archivos,
y empaco este botón Después de eso, necesitamos
definir esta función. Copo esta función y solo
voy a
duplicar esa sección. Entonces después de duplicarlo, voy a reemplazar
el nombre de la función, abrir archivo, abrir múltiples archivos. En lugar de usar puntos de
diálogo de archivo, abrir nombre de archivo, voy a usar
nombres finos MEs Este Además, voy a cambiar
el título de esta ventana abrir un archivo dos,
abrir múltiples archivos. Ahora voy a
eliminar esta característica. No lo necesito. Y en lugar
de usar un filtro, voy a usar
múltiples filtros a la vez. Déjame mostrarte. Entonces
Helm define imágenes. Nuestro nivel de filtro son las imágenes, y al mismo tiempo, quiero acceder a la imagen PNG imagen
JPG, imagen JPEG. Con eso, si quieres agregar Adobe iSorfle o
archivo PSD, sí, Solo para escribir espacio y escribir
start.ai en el archivo de Illustrator. Espacio, también si
quieres abrir archivo PSD, entonces para escribir star dot PSD, Photoshop documento cinco, y
voy a establecer este código. Después de eso, también,
voy a cambiar la declaración
impresa. Voy a hacer que sea
archivos seleccionados, luego ruta de archivo. Pero antes de ejecutar
este código, también, voy a cambiar la variable porque duplico este archivo, así que no quiero usar
el mismo nombre de variable. No quiero sobrescribirlo. Para eso, quiero usar un nombre de variable separado.
Entonces voy a escribir. Voy a hacer que
sea archivos de ruta de archivo, este. Voy a
establecer este archivo. Además, si los archivos luego
imprimen los archivos seleccionados, y va a imprimir un tapu Se va a imprimir una cinta con múltiples
rutas de archivo seleccionadas. Déjame mostrarte. Así que establece este archivo si
ejecuto este código en mi terminal e intento
abrir varios archivos. Ahora puedes ver el resultado. Aquí, como puedes ver,
se trata de imágenes seleccionadas, y abre todo tipo
de formato de archivo de imagen. No tengo ningún formato de archivo
JPEG. Por eso no se muestra. Tenemos el archivo JPG, tenemos el archivo Adobe
Illustrator, teníamos el archivo Photoshop
y tenemos el archivo PNG, y voy a abrirlo
todo a la vez. Si lo abro, como
pueden ver en mi terminal, se imprime un Taple cada elemento
Taple es una ruta de archivo Aquí está nuestro archivo localizado. Esta es la primera parte
de este tutorial. En la misma parte
de este tutorial, voy a usar otras
dos funciones como preguntar guardar
nombre de archivo y preguntar directorio. Se utiliza para guardar el archivo y el siguiente es
seleccionar la carpeta. Gracias por ver
este video,
mantente atento para nuestro próximo estudio.
34. Diálogos de archivos, parte 2: Me alegro de verlos de vuelta, chicos. En este tutorial,
vamos a aprender. Pregunte guardar nombre de archivo método
y preguntar método de Ditoria. Se utiliza para seleccionar la
ubicación para decir archivo Babe, y el siguiente se utiliza
para seleccionar una carpeta. Entonces comencemos práctico. Entonces como pueden ver, estamos en
mi editor de código is studio. Ahora voy a
crear otro botón. Eso va a
comandar una función. Guarda el archivo, déjame mostrarte. Entonces, para escribir t botón de punto, y nuestro
texto del botón es guardar archivo. Y en nuestro parámetro de comando, llamo a esta función, guardar archivo, y empaco este botón. Y después de eso,
necesitamos definir esta función. Diga archivo. Entonces copio el nombre de la función y voy a
duplicar esta sección. Al principio, voy a
cambiar el nombre de la función. Voy a cambiar
abrir múltiples archivos a y reemplazar con guardar archivo. Después de eso, voy a
cambiar el nombre de la variable. Voy a hacer que salve a Path. SPAt igual al punto de diálogo de archivo, pregunta guardar método de archivo Encendido para reemplazar preguntar
nombres de archivo abiertos o pedir guardar nombre de archivo. Entonces voy a establecer un título. Voy a hacer que sea
título igual para guardar como. Después de eso, se puede mencionar la extensión por defecto
del archivo seguro. Para ello, utilizamos este parámetro, extensión
por defecto
igual a punto TXT. Entonces automáticamente, va a establecer el archivo en formato TXT. Además, se puede mencionar
en los tipos de archivos. Así que para eliminar estas extensiones de
archivo y con todo tipo de archivos, voy a usar archivo TXT. Yo uso esta etiqueta TextFile, y luego uso start dot TXT Después de eso, necesitamos imprimir la ruta elegida después de
seleccionar la Ruta. Para eso, necesitamos
usar I condición
I Seppth I set path is true, entonces quiero imprimir
la variable set path También, voy a cambiar el texto de esta declaración
impresa. Aquí voy a escribir archivo guardar en Guardar PAT y
voy a configurar este archivo. Después de sub este archivo, si ejecuto
este código en mi terminal, ahora puedes ver
este botón de archivo. Si hago clic en él desde aquí, puede usar la ubicación del archivo
en nuestro documento de caso. Además, puede usar tipos FlesVs
como Bidifulc TextFils. También puedes elegir todos los archivos y puedes seleccionar
tu ubicación para guardar. Después de guardar va
a sustituir a éste. Va a
sustituir a la nueva. Además, si quieres poner tu propio nombre como
cualquier cosa como archivo nuevo,
nuevo archivo y elige
la extensión de texto, archivo de
texto, y luego Paysafe Ahora ya se
puede ver una terminal, imprimo la ubicación segura del archivo. Archivo guardar en el exacto esta ubicación con
este nuevo nombre de archivo. Recuerda, no
crea un archivo real. Es solo crear una ubicación de archivo
segura. Ahora, hablemos de
nuestra última función. Para eso, voy a definir otro botón aquí
tipo pkt botón Voy a colocarlo
en una ventana raíz y nuestro texto de botón
es seleccionar carpeta, y va a comandar este
método, seleccionar DSCOFolder La función seleccionar
carpeta va a definir un manejador let
a carácter PKD Puedes seleccionar cualquier
carpeta usando eso. Definamos la función. Para eso, aquí, voy a escribir nuestra función nombre
Dave select folder. Y dentro de la función, voy a escribir la
ruta de la carpeta, de lo contrario carpeta. Carpeta igual al archivo de diálogo, archivo de diálogo punto, y
aquí vamos a usar ask directorio.
Preguntar directorio. Después dentro de las
rotondas al principio para proporcionar el título y
nuestro nombre de título es título, Amotype seleccione una carpeta.
Esto es. Es necesario pasar
otros parámetros como extensión de archivo por defecto, tipos de
archivo, etcétera,
tenemos que elegir la carpeta Si quieres establecer condición, es correcto o no, vamos a vamos a definir una sentencia print
usando condición IP. Entonces C I carpeta, si carpeta, entonces dentro de
esta condición, luego dentro de esta condición E,
voy a imprimir. Él para imprimir dentro de la carpeta redonda
seleccionada carpeta, quiero seleccionar la
carpeta de ruta de la carpeta y voy a configurar este archivo. Después de configurar este archivo, si
ejecuto este código en mi terminal e intento seleccionar una
ruta de carpeta, déjame mostrarte, puedes ver el
botón, seleccionar carpeta, si hago clic en ella y selecciono una de las carpetas como descargar. Descargas, de lo contrario, se
puede seleccionar carpeta
de cualquier unidad, si abro esta unidad, tal como
seleccionamos la KinterFolder Entonces si hago clic en él, aquí se puede ver la
ruta de la carpeta carpeta seleccionada. Esta carpeta está en mi unidad web y el nombre de nuestra carpeta es Kinter Entonces estas son las funciones de diálogo de
archivos más comunes, y se puede ver su propósito
y lo que escribieron. Así que gracias por
ver este video. Estén atentos para nuestro
próximo Tutorial.
35. Selector de color: Oigan, chicos, me alegro de volver a verles. Este es el tutorial final
relacionado con los cuadros de diálogo, y en este tutorial, vamos a aprender selector
de colores El módulo selector de color permite al usuario elegir un color
de una paleta Está escrito tanto valores de color RGB como
valores de color hexa. Entonces comencemos la práctica
y veamos cómo podemos usarla. Entonces como puedes ver, estamos en
mi editor de código de estudio Visal, y creamos una ventana básica
simple Después establecemos la geometría. 300 por dos hun, aquí vamos a
usar selector de colores Entonces necesitamos importar selector
de colores. Para eso, necesitamos atar desde
Kiner import color chooser. Entonces necesitamos
crear un botón que vaya a llamar a una función. Para eso, voy a atar el botón
tdt y voy a presionar el botón en
una ventana raíz y nuestro botón toma
este color de manguera En nuestro parámetro de comando, llamo a esta función
chose color. Y ahora necesitamos
definir esta función. Entonces aquí, voy a
definir la función. Dave elige el color. Luego dentro de esta función, necesitamos abrir
el diálogo del selector de color Para eso, voy a definir una variable y nuestro nombre de
variable es color. Color igual a desde
selector de
color, selector de color, yo uno, dos, quiero usar el método
llamado ask color. Éste. Entonces dentro de la rotonda aquí, voy a definir
un título de título, y voy a escribir Pk color Elige un color. Después de eso, voy a usar condición IP. Como te dije, después de
elegir un color, va a devolver valor hexa también
valor RGV Aquí voy a
decir una condición
colorea del color que
quiero seleccionar del color, quiero seleccionar Indice uno. Aquí uso el índice uno, y el índice uno significa
valor hexa Lo que significa que si
hay un valor Xa en esta variable en el
índice número uno, entonces dentro de esta condición IP, quiero imprimir dentro los vestidos redondos,
voy a escribir. Primero, quiero imprimir los valores
RGV en Tipo RGB, dos puntos y voy a
imprimir el valor de color RGV Para eso, para acceder al valor de color
RGV, apertype el nombre de la variable, necesitamos acceder al número de
índice cero Se va a imprimir
el valor del color argv. Entonces voy a imprimir la
xa. Duplico esta línea. En lugar de usar el color cero, voy a usar el
índice número uno, y voy a
reemplazar RGV una x Voy a configurar este archivo. Ahora, después de configurar este archivo, si ejecuto este código
en mi terminal, déjame mostrarte, tenemos un
botón llamado Selotor de color Si hago clic en él, abre el cuadro de diálogo selector de
color. Si selecciono algún color como color
verde y presiono Bien, ahora puedes ver el color hacer. Este es el sauce AGV de este color y este es
el HiXavo Ahora, déjame mostrarte
otro ejemplo. Quiero cambiar el color de
nuestra ventana. Sea cual sea el color que seleccionemos
de este selector de color, quiero aplicarlo
en nuestra ventana principal Para eso, voy a escribir
root dot config Method, Config En cambio los vestidos
redondos, quiero cambiar el
dground color tie BG Fondo igual a
Dgroun igual a dos, coloqué y quiero
aplicar el valor hexa Así que ate el color uno
índice número uno. Voy a volver a configurar
este archivo. Ahora bien, si vuelvo a ejecutar
este código y abro el cuadro de diálogo de color y
selecciono cualquier color como este tipo de azul y
selecciono y presione Bien, ahora se puede ver en
nuestra ventana principal, se refleja con este
color, este color azul. Sea cual sea el color que seleccionemos
de este selector de color, va a aplicar el
color en esta ventana Así es como podemos usar el cuadro de diálogo selector de
color. Gracias por ver
este video,
mantente atento para nuestro próximo tutorial.
36. Barras de herramientas Tkinter Python: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial, y hoy en este tutorial, vamos a aprender sobre
toolbdsolwars Básicamente, una palabra de herramienta
es solo un lugar de marco en la parte superior de la ventana que contiene el
asistente de botones con iconos. La palabra herramienta no es un objeto, no un objeto diferente. Está hecho con marco. Vamos a crear la barra de herramientas
y romper el concepto. Como pueden ver, estamos en mi editor de código de
Wizard studio y creo un archivo Python y
creo una herramienta Python cinco
punto Pi y tenemos una carpeta, carpeta iconos, y dentro de
esta carpeta de iconos, tenemos múltiples iconos, como nuevo icono, esta imagen, icono
abierto, y icono de Sab Y voy a
usar estas imágenes. Estas imágenes son imágenes de muy
baja resolución, como 16 por 16 píxeles, lo contrario los cuatro y
a los cuatro píxeles. De acuerdo a tus necesidades, puedes asignar cualquier resolución
a estas imágenes. Entonces comencemos la práctica. Al principio, voy a
crear una barra de herramientas para eso, voy a definir
una barra de herramientas variable. Barra de herramientas igual a TKDTFrame. Aquí creamos un objeto frame. Después dentro del receso redondo colocamos el marco
en una ventana de raíz, luego usamos borde un relieve Tkot levantado.
Este es el tiempo de las fronteras. Ahora, después de crear
el marco de la barra de herramientas, también necesitamos
empacar esta barra de herramientas. Lo voy a empacar aquí. Algún tipo tool word dot pack, y voy a
colocarlo en la parte superior. Quiero llenar esta
barra de herramientas en Xxs. Ya conocemos el
proceso de cómo podemos colocar un objeto en cualquier lugar y
cómo podemos estirarlo. Ahora, después de definir la barra de herramientas, necesitamos cargar las
imágenes del icono de las imágenes. Primero, voy a cargar nuevo
icono, esta nueva imagen,
definir una variable, nuevo icono, igual a AirTypeHirn para escribir
tdt Ahora bien, este es un
nuevo método para ti. Usando el método photo Image, podemos ingresar imagen en nuestra
Ventana y como puedes ver, como parámetro, vamos a
proporcionar la ruta del archivo. Entonces desde la carpeta icons, quiero acceder a new dot PNG. Después lo guardo en un nuevo icono
variable. la misma manera, voy a ingresar a otra imagen
abrir y guardar. Aquí entré a otra imagen, abro el icono y guardo el icono, usando el método de imagen de foto. No te preocupes por eso.
En nuestro próximo capítulo, hablaremos de imágenes fotográficas. Una cosa que debes recordar, icono de
carga debe ser imagen PNG
o de otra manera imagen GIF. A continuación, necesitamos
crear los botones, y estoy bien para reemplazar el icono del botón con
esta imagen PNG. Entonces al principio, voy a
crear el nuevo botón. Así que escribe nuevo botón
igual a los botones Tkot. Entonces dentro del
brcess redondo voy a colocar el botón dentro del marco de
la barra de herramientas Entonces imagen igual a nuevo icono. Ahora asigno nueva imagen de icono a este botón y comando
igual a nuevo archivo. Va a comandar
esta función, nuevo archivo. No te preocupes. Vamos a crear
nuestra nueva función de archivo más adelante. Después de eso, empacamos
este botón nuevo. Entonces como puedes ver, cómo
definimos un botón variable nuevo y botón igual
al botón tick dot. Y pruebo este botón
dentro de esta herramienta word frame. Después asignamos imagen. Imagen igual a nuevo icono, la nueva imagen de icono
a este botón. Después de eso, comandamos
esta función, Nuevo archivo, Don VOD, crearemos la
función más adelante y también empacamos este botón, botón punto, paquete, y
dentro del proceso de ejecución, y presiono este
botón en el lado izquierdo Además, le asigno un poco de relleno
a este botón en Xs y YxS. De la misma manera, voy
a crear otros dos botones. Simplemente avance rápido el
proceso para ahorrarle tiempo. la misma manera, creo Abrir archivo y el botón
Guardar archivo. Ahora una a una, voy a
definir todas las funciones, archivo
nuevo, archivo abierto
y archivo seguro. Básicamente, voy a mostrar una masa de información cuando
hagamos clic en estos
botones. Nada más. Para eso, necesitamos
importar cajas de masas. Así que escriba de Kiner
Import caja de masas. Después de eso, voy a
definir las funciones. Nuestra primera función
es Dave New file. Entonces dentro de esta
nueva función de archivo, voy a imprimir este mensaje. Quiero imprimir este mensaje
informativo. Entonces escribo el cuadro de mensaje
punto para Info Method. Entonces como etiqueta como título
de esta acción Window
HearityPetolb, y como mensaje de información
pasamos, De la misma manera, voy a
crear otras dos funciones. Entonces aquí, voy a
definir otras dos funciones, abrir archivo y guardar archivo. Para archivo abierto, paso
este mensaje, archivo abierto, y para Saffle, aquí paso conjunto de
archivos. Es este archivo. Upper sep este archivo
si ejecutas este código en mi terminal y como puedes ver,
Creó, Creó
Ta con íconos. Reemplazamos los botones
con estos iconos. Si pateo uno de los
botones como abrir archivo, ahora puedes verlo mostrar
un mensaje, abrir archivo. la misma manera, si
hacemos clic en Saffle, mostrar este mensaje, archivo guardado Básicamente en este tutorial, trato de mostrar lo que es la barra de herramientas. La mayoría de los casos
usamos barra de herramientas con menús, pero ya
te enseño cómo podemos crear menús y cómo
podemos crear submenús Entonces esto es todo para este tutorial. Gracias por ver este video. Estén atentos para nuestro
próximo Tutorial.
37. Añadir imágenes en Tkinter: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial, y hoy en este tutorial, me gustaría mostrarte
cómo podemos agregar imagen en Kiner Windo usando
foto Imagen Para agregar la imagen, vamos
a utilizar el método de imagen de foto y solo soporta
imagen GIF e imagen PNG. La clase de imagen fotográfica en Tinter te permite
mostrar imágenes, pero solo es compatible con el formato
PNG y GIF No admito imagen en formato
JPG. Veamos un ejemplo de cómo podemos usar esta imagen fotográfica de
clase. Ya usé este
en mi tutorial anterior, pero este es el tutorial
separado para esta imagen fotográfica de clase. Empecemos la práctica. Entonces como pueden ver, estamos en mi editor de código de estudio de resultados. Al principio, voy a importar un módulo y nuestro
módulo es Kinder Voy a escribir Import
Kiner TK enter como TK. Después de eso, después de eso para
crear la ventana raíz. Para eso, voy a escribir
root igual a p punto clase T. Además, voy a asignar un
título a esta ventana raíz. Ejemplo de imagen de foto de título de raíz. Entonces puedes asignar
geometría a esta ventana. Puedes saltarlo si quieres. Entonces voy a escribir
root dot main loop. Voy a correr el bucle principal. Aquí vamos a usar la clase de imagen
fotográfica para
acceder a la imagen. Para eso, necesitamos escribir T
dot photo image. Imagen fotográfica. Luego dentro de los vestidos redondeados, es
necesario proporcionar la ruta del
archivo, de lo contrario, archivo Archivo igual a dentro los códigos dobles y nuestro nombre de archivo de
imagen está en archivo, este, esta imagen PNG. Quiero agregar archivo punto PNG. Eso es. Entonces voy a guardar esta
imagen en una variable. Para eso, aquí, voy
a definir una variable ING, imagen igual a TKTPhotoImage Ahora quiero mostrar esta
imagen dentro de una etiqueta. Para eso, voy
a definir una etiqueta, etiqueta igual a etiqueta T. Ahí está la rotonda
voy a poner la etiqueta en una ventana raíz Después de eso, voy
a definir la imagen. Aquí voy a
usar opción de imagen. Imagen igual a,
voy a pasar la variable de imagen IMG, imagen Voy a poner el
archivo. Después de eso, voy a empacar esta etiqueta. Entonces voy a escribir
label dot método PAC. Entonces dentro del Rundss quiero
agregar algo de relleno en YX,
algún tipo, pad, Y, entrando en pixel.
Voy a poner esta parte. Ahora bien, si configuro este archivo y ejecuto este código
en nuestro terminal, aquí puedes ver la imagen PNG. Como te dije, es compatible con el método de imagen fotográfica
solo soporta imagen PNG y GIF. No admito otro formato
como GPG, JPEG, etcétera. Ahora bien, si intentas
mostrar la imagen JPG, entonces duplico esta línea y
comento la línea anterior, y voy a reemplazar esta ruta de
archivo con css dot JPG, css dot JPG, y configuro este archivo y ejecutaré
este código en nuestra terminal. Ahora puedes ver
que es el túnel Aero. Además, una cosa que
debes recordar. Siempre, debes mantener una
referencia a la imagen. De lo contrario, puede que no se muestre. Quiero decir único para
asignarlo en una variable. En nuestro caso, IMG. De lo contrario,
no va a funcionar. Este es el primer ejemplo. Aquí, muestro imágenes
PNG o JPG. Si deseas usar imágenes de
otro formato como JPG, JPEG, BMP, PNG, WEBP, en ese caso, necesitas usar un módulo,
módulo llamado PL Déjame mostrarte
la demostración. Ahora déjame mostrarte otro
método que puedes mostrar otras imágenes de formato
usando la biblioteca PAL. Estadísticas PAL para plu. Se utiliza para GPG, PNG, todo tipo de imágenes La imagen fotográfica de Ginters solo
admite PNG o GIP. Pero con Pillow, puedes cargar casi todos los formatos,
como JPGImage, imagen
JPEG, imagen BMP, imagen
PNG, imagen TI AFB y
WebPImage Entonces déjame mostrarte
cómo podemos usarlo. Entonces como puedes ver en mi editor de código
visualts studio, aquí creo otro archivo
Python, Minto dot pie Al principio, voy a
importar el Kintermdule. Voy a escribir
Importar inter como DK. Después de eso, voy a
abrir mi Windows PowerShell. Como pueden ver aquí abro mi Windows PowerShell y
voy a instalar un módulo,
y nuestro módulo tiene como objetivo el tipo
Pillow, Peep,
install, y nuestro nombre de módulo es PLO voy a golpear Enter Después de golpear Enter, como puedes ver, requisito ya
satisfecho porque ya
me descargo este módulo. Pero si no
descargas este módulo, necesitas completar
tu proceso de descarga. Ahora volvamos al código. Después de eso, desde el módulo PIL, necesitamos importar
imagen e imagen TK. Tipo de suma de PIL, quiero importar
imagen e imagen TK. Estas dos clases,
imagen TK, eso es todo. Entonces voy a crear
un objeto de ventana raíz usando esta clase T. Después de eso, voy a definir un título. Aquí tecleo raíz título
almohada imagen ejemplo. Entonces voy a
correr el bucle principal. Entonces escribe, raíz, bucle principal. Ahora quiero abrir la imagen
JPG, css punto GPG. Para eso, voy a definir una variable y nuestro nombre de
variable es image. Imagen igual a aquí, voy a usar clase de imagen, imagen, punto, método abierto. Abierto. Entonces dentro de las rotondas aquí dentro del doble
recorrido para pasar, necesitamos pasar el nombre de la
imagen, Css punto JPG Después de eso, necesitamos
convertir la imagen
en imagen compatible con Kiner Para eso, voy a
definir otra variable IMG,
imagen, imagen qual dos. Voy a utilizar
esta clase image TK, image tk dot photo image method. Después dentro de los vestidos de ronda, voy a pasar
la variable de imagen Imagen. Después de eso, necesitamos mostrar
esta imagen en una etiqueta. Para eso, voy a
definir una etiqueta y etiqueta
igual a etiqueta de punto T, y pruebo la etiqueta dentro la ventana raíz y aquí imagen, imagen igual a imagen
IMG Imagen variable Entonces voy a
empacar esta etiqueta. Tipo etiqueta punto PAC Mathod. Después dentro de la rotonda, voy a escribir pad Y 20 pixel. Voy a
establecer este archivo. Hasta configurar este archivo, si
ejecuto código en mi terminal, aquí puedes ver el resultado.
Se puede ver la imagen. Nuestra
resolución de imagen GBG es demasiado grande, por
eso cubrió el área Para resolver el problema de tamaño, podemos usar otro método. Déjame mostrarte. Voy
a cuate el terminal y aquí voy a
proporcionar una imagen de
dimensión específica a
esta variable de imagen Entonces para escribir imagen. Imagen igual a aquí, voy a usar image
dot resize method,
algun tipo image, dot, resize method,
resize method, resize Luego dentro de las rondas, luego dentro de las rondas, necesitamos proporcionar la
dimensión de la imagen. Es necesario proporcionar la
dimensión dentro de las rondas algún tipo 400 por 400. Es una imagen cuadrada. Voy a establecer este archivo.
Después de configurar este archivo, si ejecuto este código
en mi terminal, ahora puedes ver el resultado. Se redimensiona la imagen JPG. Básicamente, el módulo Pio extiende capacidad de
Cintros al
admitir más formatos Puede cambiar el tamaño, recortar, rotar y aplicar filtro en esta imagen Y recuerda, siempre usa el método de imagen de foto de punto
mágico para convertir una imagen PIL en
un formato intercompatible Esto es para este tutorial. En el siguiente tutorial, te
voy a mostrar cómo podemos
recortar la imagen, cómo podemos rotar una imagen, también cómo podemos aplicar
diferentes filtros,
como Guscian, escala de grises, desenfoque, etcétera Estén atentos para nuestro
próximo tutorial.
38. Redimensionar, recortar, rotar y filtrar imágenes (almohada + Tkinter): Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con otro tutorial. Y para hacer este tutorial, vamos a
aprender a redimensionar, recortar, rotar y filtrar imágenes con
la ayuda de pillow y kid En nuestro tutorial anterior, ya te
muestro cómo
podemos cambiar el tamaño de las imágenes Para eso utilizamos este
método image dot Resize. Entonces necesitas proporcionar
ancho y alto. Y si quieres recortar
imagen, en ese caso, en tipo image dot crop method. Luego debe
proporcionar los lados, el lado del
labio, el lado superior, el lado derecho y el lado inferior. la misma manera, si
quieres rotar la imagen, entonces necesitas
usar el método rotate, y necesitas proporcionar
valor en ángulo. Y si quieres aplicar
filtros como GrisKL filter, entonces necesitas escribir
imagps Y para el filtro de sangre, es necesario escribir filtro de punto de
imagen. Aquí es necesario aplicar el filtro
de imagen punto BLAD. Así que no te preocupes por ello. Te voy a mostrar todos
los ejemplos prácticos. Entonces como puedes ver, estamos en mi editor de código de estudio de usuario y creo un
archivo Python main dot pi. Y en nuestro tutorial anterior, ya aprendemos cómo podemos abrir imagen usando la ayuda
de la molécula Pillow. Ahora también aprendemos cómo
podemos cambiar el tamaño de nuestra imagen. Aquí utilizamos una
imagen diferente luz punto JPG. Si ejecuto este código
en mi terminal, como pueden ver, esta es
la imagen de una luz. Y esta dimensión de imagen
es 512 por 512. Ahora voy a
cambiar el tamaño de esta imagen. Para eso, voy
a definir una variable
y nuestra variable es redimensionada, redimensionada, igual a
redimensionar igual a Aquí voy a usar el método
Image dot redimensionado. Ahí dentro de las prensas redondas, es necesario mencionar la
dimensión Ancho y altura. Algunos dijeron Ancho,
300 y Alto 200. Coma 200. Además, proporciono un
solo comando con 300 y altura 200. Ahora voy a reemplazar esta variable de imagen con
esta variable resignada. Copo el
nombre de la variable y reemplazo variable
de imagen con redimensionada. Después de ingresar la imagen,
cambiamos el tamaño de la imagen. Después pasamos la
imagen en esta clase, image ticker dot photo image, y voy a satisfacer. Después de satisfacer, si
yo en este código en mi terminal,
se puede ver el resultado. Se redimensiona la imagen
con 300 y altura 200. Ahora, déjame mostrarte
otro ejemplo con crop, cómo puedes recortar una imagen. Yo creo otro
archivo Python crop dot
pi y abro esta imagen con la
ayuda del módulo pillow. Ahora quiero recortar esta imagen,
la imagen de luz, la imagen de luz
exacta. Para eso, voy a
definir un cultivo variable. Recortar igual a, necesitamos usar
la función de recorte, algún tipo de recorte de punto de imagen. Luego dentro de las rondas aquí, necesitamos proporcionar los valores, el valor
izquierdo, el valor superior, el valor derecho y el valor inferior Entonces para el valor de la izquierda, voy a pasar 50
por el valor superior, voy a pasar 50 de nuevo. Y por el valor correcto, voy a pasar 250. Y para el menor valor, nuevo, voy a pasar 250. Entonces voy a sustituir
esta imagen por imagen de recorte. Así que copia recortada variable rip esto con eso. Y
voy a poner este archivo. Ahora, después de configurar este archivo, si pudiera ejecutar este
código en mi terminal, aquí se puede ver la
versión de recorte de esta imagen. Desde el lado izquierdo, iCrof
50 pixel desde la parte superior, iCrof 50 pixel y
desde el lado derecho,
aquí recorte, 250 pixel
y desde abajo, recorte desde la parte inferior
Iicrop aquí recorte, 250 pixel
y desde abajo, recorte desde la parte inferior Iicrop Y después de recortar esta
cantidad de área, obtenemos esta imagen. También, para entender
los valores de recorte, voy a pasar un
solo en comentario Primero, tenemos que pasar el encendido, luego tenemos que pasar
el valor superior,
luego a la derecha luego el valor inferior. Ahora, déjame
mostrarte otro ejemplo cómo podemos rotar una imagen. Como puedes ver, creamos otro archivo Python rotar punto
pi e importo la imagen. Ahora para rotar la imagen, primero, hay
que definir una variable
y nuestra variable es rotar. Gire igual a aquí necesitamos usar el método de rotación de
punto de imagen. Entonces dentro de las rondas es
necesario mencionar
cuánto rotamos. Quiero rotarlo hasta
60 grados, así paso 60. Y luego en nuestra imagen fotográfica, voy a reemplazar
con esa imagen girada. Y voy a poner este
archivo. Después de configurar este archivo, si ejecuto este código
en mi terminal, se
puede ver el resultado. Como puede ver,
gira la imagen a 60 grados y gira la imagen en
sentido antibloqueo Entonces así es como podemos
rotar una imagen con el helpop con el método
HelPop rotate Ahora déjame mostrarte
otro ejemplo. Aquí te voy a
mostrar cómo podemos aplicar filtros en la imagen. Para eso, para aplicar el filtro, aquí creamos otro archivo
Python filtros punto pi. Ahora, antes de aplicar los
filtros con la clase TK de imagen, necesitamos ingresar a otras
clases como filtro de imagen. Después de commemotype image
filter y image Ops, para difuminar la imagen,
utilizamos el método de filtro de imagen, y para
convertirla en una imagen grascal,
usamos el método Image usamos Ahora vamos a convertir esta imagen
en la imagen en escala de grises. Primero, voy a
convertirla en imagen en escala de grises. Aquí aquí voy a
definir una variable gris,
gris igual a, voy
a escribir imagen Ops,
imagen Ops punto escala de grises Después dentro del receso redondo, voy a pasar la
imagen variable de imagen. Entonces voy a sustituir
la imagen por imagen gris. A. Ahora después de establecer este archivo, si ejecuto este código
en nuestro terminal, aquí puedes ver el resultado. Convierte esta imagen
en grisscalimage. Ahora, veamos cómo
podemos agregar Bar, cómo podemos aplicar el
filtro de desenfoque. Déjame mostrarte. Entonces aquí, voy a escribir
otro solo comando, Aplicar filtro de desenfoque, y luego voy a
definir un desenfoque variable. Desenfoque igual a aquí, voy a escribir
image, dot, filter, Image dot filter dentro de los vestidos
redondos, y aquí, voy a llamar a este
método, filtro de imagen, filtro imagen, punto,
blur. Eso es. Voy a establecer este
archivo. Después de eso, después de eso, voy a reemplazar la imagen gris por
la imagen borrosa. Así que copia el nombre de la variable
y voy a reemplazar el gris con blurd y
voy a configurar este archivo Y esta vez si ejecuto
este código en mi terminal, aquí puedes ver la imagen borrosa. Así es como puedes
aplicar un filtro. Se pueden aplicar múltiples filtros. Tenemos múltiples
encuentros de filtro, como desenfoque, contorno, detalle, borde mejorado, borde mejorado más,
ambos, borde fino, afilado, liso,
tablero liso y mani No te voy a mostrar todo el filtro en este tutorial. Sin desenfoque, voy a aplicar otro filtro,
que es condure Entonces voy a duplicar
esta sección y nombre aplicar filtro de
contorno de contorno aquí voy a sustituir el nombre de la variable de
sangre por
contitor voy
a usar el tiro de CUNTR y voy a sustituir el filtro de
sangre por anti Entonces voy a mostrar
el filtro de contorno. Voy a establecer
este archivo. Además, necesitamos comentar esta línea, lo contrario, la va
a sobrescribir. Comento esta línea. Ahora la pregunta es ¿qué filtro de
contorno va a hacer? Básicamente, este filtro va a detectar los bordes y
delinear los bordes. Entonces después de establecer este archivo, si ejecuto este código
en mi terminal, se pueden
ver los
bordes de este bulve Detecto los bordes y
dibujo los contornos. Esto es lo que hace el filtro de contorno. Ahora tenemos múltiples filtros. No voy a
aplicarlo todo. Depende de usted
experimentar con eso. Debajo del código, proporcionaré todos los
nombres de los filtros en un comentario. Aquí te proporciono todos los
filtros comunes nombre que puedes usar con el método de filtro de imagen,
Desenfoque, detalles de contorno, mejorar el modo de mejora de borde, embosar borde afilar,
liso, modo liso, rango de caja
cushionl, maiden, filtro
mínimo, mínimo Se puede aplicar uno por uno, todo ello en esta imagen. No voy a
mostrarte todo eso. Recuerda, estos son el
filtro del módulo de almohada, no del Kintro Sin módulo Pillow,
no puedes aplicar este filtro, y debes recordarlo. Esto es para este tutorial. Gracias por ver este video. Estén atentos para nuestros
próximos tutoriales.
39. Uso del módulo ttk: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial, y a en este tutorial, los
vamos a
aprender a los asistentes con Ahora bien, ¿qué es TDK? ¿Qué es el mago TTIK? El módulo Kind TTK proporciona un asistente
moderno de aspecto nativo
con capacidades de tematización. A diferencia de los asistentes clásicos de Tinter, los asistentes TTK son más
consistentes con el aspecto de la plataforma y se
pueden personalizar usando estilos y temas TTK son más
consistentes con
el aspecto de la plataforma y se
pueden personalizar usando estilos y temas. Ahora, en lugar de usar el módulo TK, vamos a usar el módulo TTK Vamos a aprender cómo
podemos usar el módulo TTK, asistente de
estilo con estilo TTK Además, vamos a
aprender sobre temas personalizados. Y por fin, me
gustaría darles un ejemplo de TTKmdu Vamos a construir un tema
personalizado para un mini en. En este tutorial,
nos vamos a centrar en el uso del módulo TTk Al principio, necesitamos entender
qué es la luna TTC. El módulo TTC es una extensión de inter que proporcionan asistentes de aspecto
moderno, que adoptan el tema de los
sistemas operativos A diferencia de los clásicos asistentes de
hinter como la entrada de etiquetas de botones,
sus contrapartes TTK como TTK Button, TTKLabel TTKEntry usan automáticamente el
estilo TTKLabel TTKEntry como la entrada de etiquetas de botones,
sus contrapartes TTK como TTK Button,
TTKLabel TTKEntry usan automáticamente el
estilo consistente del sistema. Se le puede llamar más versión de actualización y actualización del módulo TTK Ahora comencemos con
prácticas y veamos cómo podemos usar los asistentes TTKule básicos de TTKule Como pueden ver, estamos en
mi código de estudio Wiz Eater, y creo una ventana Kiner
simple básica Aquí hay una geometría 300 por 200. Ahora, al principio, necesitamos importar
el módulo TDK. Entonces aquí, voy
a escribir desde Kiner, voy a importar TTK Después de eso, voy
a crear una etiqueta TDK. Quiero decir que
vamos a crear una etiqueta pero no usando el módulo T. Vamos a usar TT mood. Quiero decir que necesitamos
crear una etiqueta, pero no voy a
usar ninguna clase de TK. Vamos a usar TTCAS. Entonces aquí, creo un nivel variable igual
a en vez de usar TK, aquí uso TK, tt Label y lo
ponemos en una raíz. Entonces nuestro
texto de etiqueta es entrar Uni. Básicamente en este tutorial, voy a crear
múltiples asistentes TTk Entonces voy a
empacar esta etiqueta, pack puntos
nivelados, y
proporciono algo de relleno
en dirección YX Después de eso, voy
a crear campo de entrada módulo TK
usando TTKClass Para eso, voy a
definir una entrada variable y
entrada igual a T tt entrada de punto, y ponemos este campo de entrada en nuestra ventana raíz luego
empaco este campo de entrada. la misma manera,
de la misma manera, voy a crear
un botón de enviar. Defino un botón variable, botón igual al botón TK, y lo pongo en una ventana
raíz y nuestro texto de botón es enviar. Además, voy a crear
otros asistentes usando TTKClass y nuestro
nombre de asistente Aquí voy a escribir combo, combo igual dos, voy
a escribir T dot Combo Box. Después dentro de las
rotondas la voy a colocar en una ventana raíz Y voy a
pasar los valores. Entonces dentro del cuadrado s aquí, necesitamos definir todos los valores
de combox Básicamente, necesitamos
crear una lista de valores de cuadro
combinado, y como valores, voy a pasar el nombre de los lenguajes de
programación, Python, Java, C
plus plus y JavaScript. Después de eso, necesitamos empacar el tipo de cuadro combinado tipo
combo dot PAC Method. Voy a añadir un poco de relleno
en xs, cinco FixelPadn. Entonces voy a configurar este archivo. Aquí utilizo múltiples asistentes. Ahora después de configurar este archivo y
ejecutar este código en mi terminal, es como se ven nuestros
asistentes TTK Se ve profesional
y moderno. Si usas eso,
entonces mismo
código Python gps que del azul nativo
específico. Quiero decir, si
eres dueño de Windows, entonces los botones se ven
como botón de Windows. Y si eres dueño de MC Ws, entonces se ven como botones de Mac. Por eso preferimos
TK más que Tiki. Entonces este es el primer
tutorial sobre eso. En la siguiente parte
de este tutorial, vamos a darle
estilo a los asistentes usando métodos de estilo ttkdt Así que gracias por ver
este video,
mantente atento para nuestro próximo tutorial.
40. Cómo diseñar widgets con ttk: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta con otro asistente de equipo
relacionado con el tutorial. Hoy en este tutorial, vamos a aprender
sobre el método de estilo ttkt Ahora, ¿qué es eso? La clase de estilo Tt
controla cómo se ven los asistentes. Con él, se puede personalizar la
fuente, el color, el borde, el relleno, e incluso cómo se comportan los asistentes en diferentes estados como
HoberPrest Es bastante similar
con el estilo CSS. Al principio, necesitas
crear un objeto de estilo. Y en nuestro paso dos, necesitamos
configurar un estilo de asistente. Cada asistente T tiene un nombre de estilo
predeterminado. Ejemplos para botón, necesitamos
escribir botón T, para etiqueta, necesitamos escribir etiqueta T, para entrada para escribir entrada T, y para marco,
necesitamos escribir marco T. En el paso tres, puedes
crear un estilo de nombre personalizado. En lugar de modificar
el estilo global, puedes crear el tuyo
propio en el paso cuatro, vamos a darle estilo
con la función de mapa de puntos. Aquí, de acuerdo al estado
múltiple, podemos diseñar nuestro asistente como active pressed desactivar el foco. Entonces comencemos la
práctica y veamos cómo
podemos aplicar el método Ttktyle Entonces como pueden ver, estamos
en mi codeditor de sal studio y aquí creo un sencillo
básico inter Window, y además importo
tClass Al principio, necesitamos
crear un objeto de estilo. Para eso, aquí, voy
a definir un estilo variable, estilo igual al
estilo Ttkdt Entonces, usando la clase de estilo, definimos un objeto. Después de eso, tenemos
que elegir un tema. Para eso, voy
a escribir style, style dot, Time style dot así. Estilo de punto Tuss dentro de
los vestidos redondos. Dentro del curso R,
voy a escribir CL AM. Aquí utilizamos almeja
Time para este tipo. A continuación, voy a definir
un botón en la Ventana para escribir BTN o variable
n equival a, y vamos a definir
el botón usando TT glassy TK, Entonces dentro de los vestidos redondos, voy a colocarlo dentro de la raíz de
la ventana raíz y nuestro texto de botón es texto igual a dentro de los
códigos dobles dentro de los códigos dobles. Aquí pasaría botón de estilo. También quiero aplicar este estilo. Para ello, necesitamos
usar el parámetro style, de
lo contrario, style attribute. Después dentro de los códigos individuales, aquí voy a
aplicar mi botón DoTT Este estilo, quiero
aplicar este estilo. Ahora necesitamos
definir ese estilo. Básicamente, aquí definimos
un estilo de nombre personalizado. Lo nombramos botón punto P. Si no definimos un
estilo personalizado para este botón, entonces va a aplicar el mismo estilo a
los otros botones. Es bastante similar con clase. Aquí definimos una
clase particular a este botón. A continuación, tenemos que
empacar este botón. Para eso, voy a atar
tn button dot pack Mathog. Después dentro de las redondeadas
voy a agregar algo de padding en YxSpad Y,
y y Después de eso, necesitamos
configurar este botón. Quiero decir estilo el botón. Entonces aquí, voy a definir un solo botón de estilo de comando. Entonces por debajo de eso, necesitamos escribir style style dot
configure Method. Configurar. Después dentro de
los vestidos redondos, voy a pasar
el nombre del botón, que es mi botón Copio el nombre del botón y
dentro de los códigos simples, dentro de los códigos dobles, voy a pasar
el nombre del botón. Acoma entonces necesitamos usar
las propiedades como font, font, font igual a, aquí quiero
aplicar Aerial font En cambio la doble capa,
voy a marcar marcar. Después de eso, voy
a definir el tamaño de fuente y quiero usar 12 píxeles. Entonces voy a proporcionar el peso de la
fuente, que está en negrita. la misma manera,
voy a aplicar encontrado color, encontrado blanco. Entonces entonces quiero
aplicar, fondo negro. Después de eso, voy a
agregar algo de padding,
padding, padding igual a, y
voy a agregar padding desde
toda la dirección. Entonces de toda la dirección, utilizo diez píxeles. Y entre los valores, hay
que proporcionar
un coma, de lo contrario, va a lanzar un do. Después de configurar este archivo, si ejecuto este código
en mi terminal, es como se ve nuestro
botón de estilo. Ahora puedes ver el color
predefinido significa que
el color de la fuente es blanco y el
color de fondo es Si lo hago azul, si quiero hacerlo azul, y ellos configuran este archivo y vuelven ejecutar este código,
se puede ver el resultado Ahora hablemos de estado, cómo podemos aplicar estado
usando el método de mapa de puntos. Como cuando nuestro
botón está activo, quiero decir cuando ella
mi color en este botón, quiero decir cuando
está en estado activo, entonces quiero cambiar
las propiedades como color de fondo
y color de primer plano. Déjame mostrarte cómo
podemos usar el método de mapa. Para eso, voy a
usar el método map, pero antes voy a
definir un solo comando, y voy a escribir
usando el método de mapa de puntos. Debería ser pequeña. Ahora su método de mapa de puntos de estilo
tipo. Mapa. Luego dentro de las rondas
al principio queremos apuntar al botón particular
usando su estilo nm personalizado Dentro del doble curso
voy a pasar mi botón. Ahora para seleccionar ese botón. Quiero cambiar el color de la fuente. Cuando coloco mis autos
sobre este botón, lo contrario, presione el botón Para eso, para eso primero, voy a conseguir
por colores propios
voy a empatar por tierra. Primer plano igual a, y
aquí tenemos que pasar una lista. Entonces dentro de esta plaza dice
cuando nuestro botón es alabado, algún tipo PRDs ED elogió, entonces quiero cambiar
el color de este teléfono Quiero que sea amarilla. Y voy a poner este archivo. Después configuré este archivo, si ejecuto este código
en mi terminal y cuando presiono el botón, ahora puedes ver nuestro
botón cambiar de color a amarillo color
blanco a amarillo. A continuación, quiero cambiar
el color de fondo. Después del coma, voy a
seleccionar el fondo. Fondo igual a
dentro de la base cuadrada, dentro de la base cuadrada, si se presiona nuestro botón, entonces copio esta declaración
y si se presiona nuestro botón, quiero cambiar el
color de este fondo, quiero que sea rojo ROJO rojo
y voy a subs pi Ahora aquí, cambia el color de primer plano
y el color de fondo, donde presionamos el botón Entonces después del archivo Sypris,
si ejecuto mi código en
mi terminal y hago clic
en este botón, ahora puedes ver nuestro color de
fondo se vuelve
rojo y el color divertido se vuelve amarillo A continuación, cuando Yo Ella mi
color en este botón, quiero cambiar el color de
fondo. Quiero que sea rosa. Para eso, para eso, en nuestra
sección de antecedentes después del coma, voy a usar otro estado de
estilo, que está activo. Entonces dentro de la ronda versus
dentro de los códigos dobles, voy a pasar,
voy a escribir activo. Activa cuando nuestro
botón está activo, entonces quiero cambiar el color de fondo y nuestro color de
fondo es rosa, y voy a configurar este archivo. Después de configurar este archivo,
se ejecuta este código en mi terminal, y cuando berm color en este botón,
se puede ver el resultado Ahora se ha vuelto de color rosa. Si quieres que
sea verde, sí, solo
puedes reemplazar el rosa
por el verde y establecer el archivo. Si alquilo mi código y ber
mi color en este botón, se
puede ver el resultado.
Ahora se vuelve verde. Entonces así es como podemos aplicar el estado de
estilo con metop. Espero que ahora el concepto
sea claro fody. Entonces en este tutorial,
aprendemos cómo podemos diseñar magos con
estilo
tt Mathup Espero que ahora el
concepto sea ClearFodi. Gracias por ver esta
declaración en video para nuestro próximo tutorial.
41. Temas personalizados en ttk: Hola, chicos. Me
alegro de verte de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial. Hoy en este
tutorial, voy a hablar de temas personalizados, temas personalizados en TTK La clase de estilo TTK
le permite administrar estilo del
asistente y cambiar entre temas integrados
o personalizados Tema disponible puedes
seleccionar win native, almeja, t default classic Vista,
expinative, et cetera Estos son los
temas disponibles que puedes seleccionar. Ya usamos un tema en nuestro tutorial anterior,
que es almeja Puedes usar Vista también, clásico también, lo que quieras usar. Además, puedes crear
tu propio tema
cantando y modificando
el tema existente Estudiemos prácticas y tratemos de entender de lo
que estoy hablando. Como pueden ver, estamos en mi editor de código
visual studio, y aquí abrí mi
anterior Python cinco. Aquí aprendemos cómo podemos
usar el método map y cómo aplicar estilo
a los botones y
cómo configurar los asistentes Ahora puedes notar cómo
aplicamos un tema reclamado. Si configuro este archivo y ejecuto
este código en mi terminal, ahora, después de aplicar este tema, es como se veía. Así es como se ve nuestro
botón. Pero si cambio el tema, déjame mostrarte si
lo hago Vista algún tipo VIS TA, luego configuro este archivo y ejecuto
este código en mi terminal. Ahora puedes ver el resultado
diferente. Después de aplicar el tema, es cambiar el botón
según el, según el estilo del tema. la misma manera, si quieres aplicar otro
como clásico, en vez de usarlo,
voy a aplicar Classic. Luego establece este archivo
y vuelve a ejecutar este código. Ahora puedes ver un
resultado un
poco diferente para este botón. Así es como se ve después de
aplicar el botón clásico. Todo se trata de tema. Pero en este tutorial, trato de mostrarte cómo
podemos crear nuestro propio, nuestro propio tema personalizado. Para eso, voy a definir otro archivo Python
y nuestro nombre final es el
tema de subrayado personalizado punto Pi Al principio, voy a importar
los módulos necesarios, TK y TK. Después de eso, después de eso, voy a crear la ventana
raíz usando la clase TK. Además, le asigno un ejemplo de tema
personalizado de título. Entonces entonces ejecuto el bucle principal, el bucle principal del punto
raíz. Después de eso, después de eso, necesitamos definir el
objeto de estilo usando la clase TT. Así tipo de estilo igual
a la clase de estilo Tt, y ahora el estilo se convierte en un objeto, que es creado por la clase de estilo. Ahora voy a
crear algunos quizards. Básicamente, quiero
crear un inicio de sesión desde. Inicio de sesión temático personalizado desde. Y para crear el inicio de sesión, necesitamos tomar una etiqueta. Entonces escribo label, etiqueta
TT porque Hero usó clase
TD para esa etiqueta tt dot, y la colocamos en una ventana raíz y nuestro texto de etiqueta es nombre de usuario. Empaque esta etiqueta con YxSpaddy. A continuación, voy a
tomar una sensación de entrada. Entonces voy a
escribir tt dot entry y pongo esta entrada
fiield en una ventana raíz, entonces voy a
empacar esta Después de eso, necesitamos definir
otra etiqueta para contraseña. Necesitamos definir otra
etiqueta y otra entrada. Nuestra siguiente etiqueta es contraseña y creo una entrada
para esta contraseña, y en nuestro campo de entrada
para la contraseña, en lugar de mostrar
los personajes, aquí muestro las estrellas. Sea cual sea el personaje que pasemos en este enterfield lo va a
exhibir como un signo de estrella Entonces necesitamos crear
un botón de inicio de sesión. Para eso, voy
a tomar un botón tt punto botón y
voy a
colocarlo en una ventana raíz
y nuestro texto de botón es login. Voy a
establecer este archivo. Después de configurar este archivo, si ejecuto
este código en mi terminal, es como se ven el botón de inicio de sesión
y la contraseña. Ahora voy a
crear un tema personalizado y voy a
aplicar este
tema personalizado a estos botones. No sólo los botones,
voy a aplicarlo en una entrada de etiqueta también. Después de definir
este objeto de estilo, voy a escribir un solo
comando, crear tema personalizado. Aquí, para crear
el tema personalizado, necesitamos escribir style Object tat necesitamos usar
este tema de clase crear. Dentro de los vestidos redondos, al principio, necesitamos
proporcionar themme personalizados Dentro del código doble,
voy a pasar mis ellos coma superior superior, luego a continuación tenemos que
pasar el temme padre Escriba parent y para
el tema padre, voy a escribir Clem También necesitamos definir los ajustes de configuración,
y esta es la principal. Dentro de la configuración, voy
a proporcionar un diccionario. Básicamente, aquí vamos a modificar el tema existente, que es claim en nuestro
propio tema personalizado, que se basa en
el tema claim, primero, voy a darle
estilo a los botones. Para eso, dentro del diccionario de
configuración, nuestra primera clave es el botón T. Dentro del doble
curso, voy a teclear botón T, luego dos puntos. Entonces dentro de la surge, luego dentro de la liss aquí,
voy a configurar Es un curso Db o
tipo, configurar, luego dentro de los dos puntos, voy a crear
otro diccionario. Aquí puedes ver dentro
del diccionario de configuración, tenemos valor tibetano. Es un ítem de diccionario. Y dentro de este diccionario
tibetano, aquí creamos otro
diccionario, el cual está configurado. Ahora voy a configurar las propiedades,
como primer plano Ahora dentro del doble curso, voy a escribir
cuatro crecidos blancos. Después de eso, voy a definir el fondo para el
fondo, utilizo este color. Entonces voy a definir
la fuente para la fuente,
HertyFont Aerial,
12 pixel y Entonces después de configurar el
botón T con estas propiedades, quiero cambiar,
quiero cambiar el color de fondo cada vez que
active este botón. Además, quiero cambiar el color de fondo
cada vez que presione el botón. Para eso, dentro de este diccionario
tibetano, aquí, voy a tomar
otro ítem, que es matemática. Después dentro de la resa Cali
luego dentro de los cálices, quiero cambiar el fondo Quiero cambiar el fondo
cuando actué este botón. Cuando actué el botón T, quiero
cambiarlo a este color y donde presiono el botón, también quiero
cambiarlo a este color. A también es necesario proporcionar
una coma entre estos dos v porque
estos son todos valor del
diccionario,
configurado y mapeado Entonces coma, voy a
pasar este mapa de valores. Ahora dentro del diccionario de
configuración, tenemos la tecla del botón T. Entonces si activamos
la tecla del botón T, se va a mover a los otros dos diccionario,
configurado y mapear. En nuestra sección configurada, configuramos el color de primer plano,
color de fondo,
fuente, etcétera, en
nuestra sección de mapa, simplemente
cambiamos el
color fuente, etcétera, en
nuestra sección de mapa, simplemente
cambiamos el W el botón está activo y
cuando se presiona el botón. Esto es para los botones, y usamos estilo T, por
eso necesitamos
teclear botones T. A continuación, después de la coma,
de la misma manera, necesitamos darle estilo a las
etiquetas, etiquetas T Entonces luego dentro del
ali versus aquí, voy a configurar
para color marrón para la etiqueta azul y también voy a
cambiar el color de fuente. Harrow es fuente Helica, y hacemos su tamaño de fuente 12 Después después del coma, voy
a darle estilo al campo de entrada. Oír
configuró este campo de entrada. Para eso escribir nuestra entrada clave T y configurarla y agregar un poco de
relleno relleno de cinco píxeles. Voy a establecer
este archivo. Así es como podemos crear
nuestro tema personalizado. Y nuestro nombre del tema es mi tema. Si ejecuto este código
en mi terminal, puedes ver cualquier cambio. No va a pasar nada porque solo
creamos el tema, no
aplicamos el tema. Ahora necesitamos aplicar el
tema en esta ventana. Para eso, necesitamos usar una matemática. Aquí, necesitamos escribir
style dot theme use. Entonces dentro del latón redondo, dentro de los códigos dobles, esta vez voy a usar nuestros
propios personalizados ellos, mi tema. Eso es. Voy a
establecer este archivo. Después de configurar este archivo, si
ejecuto este código en mi terminal, aquí puedes ver el resultado. Aquí puedes ver
si
aplicamos con éxito nuestro propio tema personalizado. Básicamente, personalizamos nuestro tema
existente, tema limpio. Personalizamos este
tema y cambiamos por color redondo
color de fondo para el botón, también para la etiqueta Te,
también para la entrada. Para la entrada, solo
para agregar un poco de relleno. Por eso se ve mucho
más grande que el anterior. Espero que ahora el concepto
sea claro para ti, cómo podemos crear nuestro propio tema
personalizado y cómo podemos aplicar múltiples
temas predefinidos como native, claim o default, etcétera Esto es para este tutorial. Gracias por ver este video, Estén atentos para el
siguiente tutorial.
42. Cómo crear aplicaciones de GUI utilizando clases: Hola, chicos, me alegro
de verles de vuelta. Una vez más, estoy de vuelta
con un nuevo tutorial, y hoy en este tutorial, vamos a
comenzar un nuevo capítulo. Vamos a aplicar programación
orientada a objetos en Kinter. Todos conocemos la importancia de programación orientada a
objetos
en nuestro proyecto. Hace que nuestro código sea más limpio. Hago que nuestra aplicación sea
escalable, también reutilizable. En esta sección,
vamos a crear aplicaciones
GI usando clases. En lugar de escribir todo
en un estilo procesal, puedes estructurar tu
GI dentro de una clase. Esto hace que tu código sea
modular y reutilizable. Y en la siguiente parte
de este tutorial, vamos a aprender
estructura de aplicación más grande. Para aplicaciones más grandes,
puede crear marcos como clases
separadas y luego
cambiar entre ellas como páginas. Después de eso, vamos
a hablar de herencia. Herencia con reutilización de
asistente. Puede crear asistentes personalizados por
herencia de asistentes de kinder Paso a paso, te
guiaré todos estos. Recorriendo este tutorial,
vamos a hablar sobre cómo
podemos crear aplicaciones GI
usando clases en Kiner Si no tienes ningún conocimiento sobre
programación orientada a objetos, puedes consultar mi sección
anterior. Es opcional, pero
en esa sección, cubro todo sobre programación orientada a
objetos en Python. Y si ya
tienes conocimientos sobre
programación orientada a objetos, entonces puedes comenzar
con esta conferencia. Este suele ser el
primer paso cuando se enseña
orientado a objetos con Kiner porque ayuda a
los estudiantes a pasar del código de estilo
procesal al código de estructura basado en
clase Ahora y clases en Kiner. Es mantener nuestro código organizado, facilita la
reutilización del asistente y la lógica,
adecuado para aplicaciones más grandes, adecuado para aplicaciones más grandes, permite que los métodos de manejo de eventos
permanezcan dentro de la clase. Si hablas del beneficio
sobre el estilo procesal, es darte un código más limpio. Una lógica está dentro de una clase.
Además, es escalable. Fácil de agregar tanto
asistente como métodos. Además, es reutilizable. Puede extender la
clase para la nueva entidad. Entonces, sin perder el tiempo, comencemos la práctica
y veamos cómo podemos usarla, cómo podemos usar las clases
en nuestro proyecto. Como pueden ver, estamos en
mi coordinador de so studio y yo creativo Python
file main dot pi. Al principio, al principio, voy a importar
nuestro módulo Kiner Así ruta, Importar Kiner
como T. Después de eso, voy a definir una clase y
la clase heredar
de la clase TK Así te class, y nuestro nombre de
clase es mi app, Mapp y esta clase Maya
en altura con clase T, algún tipo t punto PK y
dentro de esta clase por ahora, voy a escribir pass Después de eso, después de eso aquí, voy a llamar a if name equal to equal to main function. Tipo I guión bajo nombre
guión bajo guión bajo guión bajo igual
a igual a dentro de los códigos
dobles
subrayado subrayado función principal, Mince
undercoe a igual a dentro de los códigos
dobles
subrayado subrayado función principal, Mince
undercoe guión bajo nombre
guión bajo guión bajo guión bajo igual
a igual a dentro de los códigos
dobles
subrayado subrayado función principal, Mince
undercoe. Entonces dentro de esta función aquí, voy a crear un objeto. El objeto que usa
esta clase de mi aplicación. Aquí estoy tipo A igual a M A. Estamos creando este objeto
usando esta clase, mi app. Entonces voy a
correr el bucle principal. Así que escribe en bucle principal
para crear la ventana. Ahora tu primera pregunta, ¿por qué uso si nombre
es igual a tequs para significar, este método, por qué
uso esta condición Si nombre es igual a tequos para mí. Porque aquí estamos ejecutando
el archivo directamente. No importamos el archivo de otro archivo
u otro módulo. Por eso necesitamos usar un nombre igual igual a igual a
función principal y es importante. Este bloque de código le permite
escribir módulos reutilizables al tiempo que permite que el
crept ejecute los suyos propios ¿Y ahora qué? Si ejecuto este código, ejecuto este código,
va a crear un inter wind
básico. Déjame mostrarte. Entonces,
para ejecutar este código, como puedes ver, crea
un inter viento básico. Ahora, volvamos a la clase. La clase Maya en
estatura con clase T. Ahora dentro de esta
clase clase Maya, al principio, necesitamos
crear un constructor. Así propina Dave no Se
underscoe underscoe es
constructor
innit y dentro las rondas Pasó propiedad de
auto SL significa objeto en sí. Quiero decir la propia app.
Eso ya lo sabemos. Ahora puedes notar que esta clase
es directa a la clase TK, es
heredar de
la clase TK y la propia Tclass tiene su
propio constructor innit, y aquí
anulamos Ahora no podemos usar propiedades de
TClass
como variables, variable de instancia
TKlass, variable de
clase, etcétera Para resolver el problema aquí
dentro del constructor init, necesitamos crear un constructor superstruct
super Voy a escribir super
luego en und brass,
luego tipo dot underscoe
underscoe Si hacemos eso, ahora
podemos usar variables Tclass,
como variable de instancia, variable de clase,
lo que sea, y otras
funciones y métodos Entonces aquí, voy a definir un título para definir el
título a esta aplicación, esta ventana, necesitamos
usar autoceldas,
dark, método title, y
dentro de los versos redondos, dentro de los códigos dobles, voy a escribir
aquí voy a escribir
programación orientada a objetos inter ejemplo. Ahora voy a
configurar este archivo y ejecutar este código en mi terminal. Ahora puedes verlo
agregar con éxito un título a esta ventana. Ejemplo inter orientado a objetos, pero ¿qué? Si comento este
superconstructor, y luego configuro este archivo nuevamente e intento ejecutar este archivo,
déjame mostrarte Es a través de una flecha
porque como te dije, cuando creo el constructor
ing, anulas la app. Anulo el constructor de
clase padre, y esta aplicación está
hecha con la clase TK. Para usarlo, necesitamos
usar superit constructor. Ahora, de nuevo, podemos usar todas las propiedades de TClass y hay que entenderlo En nuestro ejemplo anterior, usamos los
nombres de objeto como root. Pero en ese caso, si usamos
class dentro de la clase, usaremos el conjunto. Entonces de la misma manera, voy a definir
la geometría. Entonces escribe
geometría de punto auto, 300 por 200. Después de eso, después de
establecer la geometría, voy a crear
voy a crear un asistente. Voy a crear una etiqueta. Así atar etiqueta de punto auto, T igual a p etiqueta de punto. Entonces quiero
colocarlo en una ventana de auto. Seres significan en nuestro
caso, la app. Entonces configuro el texto
para esta etiqueta, hola Kinder con OPP Object programa
alquilado y uso fuente, fuente aérea y nuestro tamaño de
fuente es de 12 pixel Entonces necesitamos, entonces tenemos que
empacar esta etiqueta. Etiqueta de auto punto etiqueta de punto dentro de la carrera Brass
Paty diez píxeles Voy a fijar esta. Ahora voy a
definir un botón. Así que escribo SL Gut botón
igual a t botón de punto, y lo metemos en una ventana auto. Y nuestro texto de botón es click me. Y como se puede ver, su parámetro de comando de uso. Pero puedes notar para
llamar a la función, nosotros usamos auto cada vez
que necesites usar SL. Si creas
variables, de lo contrario, cualquier función, de lo contrario
llamar a cualquier función, necesitas llamar a
St porque estamos dentro de clase y ella
usa un constructor. Constructor de TI. comando igual al método
SelbdToClick A continuación, voy a
empacar este botón. Para eso, nuevamente, necesitamos
escribir el método de paquete de punto de botón
de punto de limo Después de eso, necesitamos
manejar esta función
para este botón, y aquí voy a manejar el botón dentro de esta clase. Entonces para eso, no voy
a usar ningún comando profundo. Solo quiero escribir en subrayado, haga clic en haga clic igual a aquí Dentro de los tirantes redondos, tenemos que pasar
el auto ker auto Entonces dentro del método onclic, aquí, quiero configurarlo Quiero configurar esta etiqueta. Así que voy a escribir self
label dot config method. Config. Dentro de las llaves
redondas, texto, texto igual a dentro
del doble código, voy a teclear
botón, hacer clic, pasarlo Uy. Necesitamos crearlo
fuera de la etiqueta de sangría, fuera del constructor it. Entonces corté esa porción
y me muevo al
exterior la etiqueta de sangría
del constructor innit De lo contrario,
no va a funcionar, que está dentro de la clase, sino fuera del
constructor innit. P configuró este archivo. Yo ejecuto este código
en mi terminal, aquí se puede ver nuestra etiqueta hola kinter con programación
orientada a objetos y tenemos el
botón, haga clic en mí Si presiono el botón, puedes ver clic en el botón. Nuestra función funciona perfectamente. Solo una cosa que necesitas
recordar todos los elementos de la GUI, como el botón de etiqueta, se inicializan cuando se crea la
clase Todos estos inicializan
con self object. Estos autoobjetos significan
la propia aplicación. El cual es hecho por mi app. Entonces este es el primer ejemplo con
programación orientada a objetos, donde te enseño cómo
podemos usar clases para crear una aplicación GI. Espero que ahora te quede claro. En el siguiente tutorial,
vamos a estructurar una aplicación
más grande. Para aplicaciones más grandes,
puede crear marcos como clase
separada y también
barrearlos entre páginas Entonces esto es para este tutorial. Gracias por ver este video, estén
atentos para nuestro
próximo tutorial.
43. Estructuración de aplicaciones más grandes: Oigan, chicos, es bueno volver
a verles. Una vez más, estoy de vuelta con un nuevo tutorial hoy en este tutorial, aprendemos cómo podemos estructurar aplicación
más grande con
la ayuda de clases. Para BigaAPS puede
crear marcos como clases
separadas y luego
cambiar entre ellos como páginas. Básicamente, cuando tu app crezca, mantén todo en un archivo
o una clase se vuelve desordenada Una buena práctica es
usar marcos como páginas
individuales y luego cambiar entre ellos dentro de una ventana
principal de la aplicación. Así que comencemos la
práctica y construyamos una aplicación Kinter de varias páginas Como pueden ver, estamos en
mi editor de código de estudio Visa, y ya creo un archivo
Python main dot Pi. Al principio, voy a ingresar
a Kintermdule. Entonces aquí voy a escribir entintador
de entrada como TK. A continuación, voy a
definir una clase. Aquí voy a escribir clase clase y nuestro
nombre de clase es principal A esta clase,
la clase principal de la aplicación hereda
a través de esta clase TK clase TK es la clase padre
de la clase principal de aplicaciones, y dentro de ella por ahora,
voy a escribir pass. Después de eso, vamos a establecer esta condición si nombre
igual a igual a mí. Porque la usamos para asegurarnos de que tu app se ejecute solo cuando el
archivo se ejecuta directamente, no cuando se
importa en otro lugar. Después de eso, dentro de
esta condición, voy a crear un objeto, objeto usando esta clase. Entonces, para escribir app
igual a app principal. Aquí creamos el objeto app
usando la clase app principal. Después de eso, voy
a correr el bucle principal. Entonces, para escribir app dot main loop. Se va a crear una
ventana básica, ventana inter básica. Ya nos enteramos de eso
en nuestro tutorial anterior. Ahora, volvamos a la aplicación principal y vamos a crear
el constructor. Aquí creo el constructor, Dave, dsc undersco int Aquí, como saben, necesitamos
pasar el Lt como parámetro. Entonces tenemos que hacerlo
superstrucor, constructor super
innit ,
tipo super Round sus uncoe
underscoe Init constructor, undersco underscoeRound ***. En nuestro tutorial anterior, explico por qué necesitamos
usar superconstructor Como puede ver, nuestra clase
está en cabeza por clase T
y la clase T en sí
tiene constructor innit También en nuestra app principal, tenemos constructor innit Aquí anulamos
el constructor, pero necesitamos usar nuestro
método constructor de clase padre funciones variables etcétera Si no lo usamos, no
podemos usar las propiedades y métodos del constructor de clase
padre. Por eso necesitamos usar
super constructor innit. Este súper método. Después de eso, después de eso, voy a
configurarlo título para que escriba self dot title
multipage inter app Entonces voy a
establecer la geometría. Aquí voy a escribir geometría auto
punto dentro de la ronda versus 400 por 250 píxeles. A continuación, voy a crear
continer cuatro páginas. Aquí voy a escribir
continer igual a t dot frame, continuer igual al
tdt frame method, y lo ponemos dentro de
la Yo en el objeto, el objeto mismo,
en esta variable. Después de eso, voy
a empacar este contenedor. Entonces escribo continente dot pack y configuro llenar ambos
y expandir True. Voy a sub este
archivo. Básicamente, creamos un marco vacío principal y dentro de
este marco marco principal app, aquí vamos a
poner otras dos páginas. Para eso, voy a usar
clases para crear las páginas. Aquí voy a escribir comando
único, página uno. Ahora vamos a crear la página uno. Voy a definir una clase, y el nombre de nuestra clase es la
página uno. Clase página uno. Luego dentro del vestido redondo
como una clase padre,
usamos la clase de marco T de tiempo La clase de página uno se sumerge
a través de tick Dot Frame Glass. Está en hit from tk dot frame, lo que significa que la página
uno es un tipo de asistente de
marco en
kin, como saben, un marco es como un contenedor
que puede contener otros asistentes, como etiqueta,
botones, etcétera Luego dentro de esta clase, necesitamos definir el constructor
init Entonces tecleé d en él. Dentro del
latón redondo, necesitamos pasar el parámetro de celda y otras
dos variables, como estas son
todas variables de clase como padre y controlador. Aquí, los padres representan
el contenedor, generalmente un
marco o ventana de muster Donde se
colocará este marco y la variable del controlador es una referencia a la clase de
aplicación principal. Puede llamar a métodos como mostrar
marcos y otros métodos. Entonces dentro de este constructor, voy a usar este
super libro de matemáticas, super constructor innit, y
aquí pasamos la patente Como saben, ahora podemos
acceder al constructor de
la clase de
patente, T frame. A continuación, voy a crear un asistente de etiquetas
dentro de este marco. Yo creo una etiqueta
igual a la etiqueta t, y la ponemos en un cel
Selfo Window, y luego el texto igual
a esta es la página uno, y el tamaño de fuente es 14 y
nuestro estilo de fuente es aéreo Después de eso, después de eso, necesitamos empacar esta etiqueta. A continuación creo un botón, botón
igual al botón ticketed, yo y lo coloco en una ventana auto y nuestro
texto de botón es ir a la página dos Entonces etiqueto este botón. Como puede ver, no utilizamos ningún parámetro de comando
para este botón. vamos a usar
más tarde. Esta es nuestra página uno. Ahora de la misma manera, voy a crear
otra página. Duplico esta sección, y aquí, voy a
escribir un solo comentario. Esta es la página dos. También, voy a
cambiar el texto. Esta es la página dos.
Esta es la página dos. Como voy a
cambiar el
texto del botón y voy a hacer
que vaya a la página uno. Ahora, volvamos a
la clase Mina. Aquí, voy a
definir un diccionario. Ese diccionario va a
almacenar todos los marcos. Yo qué decir las páginas. Así que escriba,
marcos de puntos propios iguales a redondo
versus diccionario vacío. Aquí, key representa
el nombre de las clases, y usted representa el objeto frame
real creado a partir de esa clase. A continuación, necesitamos recorrer estas páginas como la
página uno y la página dos. Nosotros para que sea dos,
no uno. Son dos. Entonces aquí, estoy tecleando para F
en la página uno y en la página dos. F significa marco. Entonces dentro de este
pro, marco igual a I dentro de la ronda
versus continuer y self, quiero decir que este bucle itera a través de todas
las clases de página y marco igual a F dentro de
la ronda versus contenedor y auto crea un
instante de esa Recuerda, continuer es
el asistente padre donde se sentará
la página y self
es el controlador principal Quiero decir la app principal. Quiero decir, cuando F es igual a la página uno, esto se convierte en marco
igual a la página uno, y cuando F es igual a la página dos, se convierte en marco igual a la página dos. A continuación, necesitamos establecer el nuevo objeto frame en un
diccionario usando la clase. Quiero establecer en este diccionario
de marcos. Para eso, aquí, necesitamos atar marcos de puntos
propios
dentro de los Runddress
Pasaré los
fotogramas variables equival Establece el nuevo
objeto frame en un diccionario. Básicamente, hace que sea súper
fácil buscar un marco. Y después podemos mostrarlo fácilmente. Después de eso, necesitamos
empacar este marco. Para eso, voy
a usar el método GET. Entonces escribe marco punto
GED, número de fila cero, número de
columna cero,
NSEW pegajoso no sureste oeste Aquí colocamos el marco en un contenedor en la
misma posición, número de
fila cero y número de
columna cero. Básicamente, todos los marcos se superponen entre sí
en un mismo espacio. Y como saben, NSEW significa
llenar toda la ventana. Significa que lo va a
expandir en el lado norte, sur, este y oeste. Siguiente fuera del bucle cuatro
y dentro de esta clase, voy a definir
otro método. Entonces escribe, tipo Sono, Dave, y función y
nuestro nombre de método es show frame aquí dentro
del marco show, aquí voy a pasar
el parámetro elf y las clases de página Entonces cada vez que llamamos a
esta función, necesitamos pasar el nombre de la
clase de página aquí, como la página uno, página dos. Después de eso, dentro de este método, necesitamos recuperar el objeto
frame solicitado del diccionario Para eso, aquí para escribir marcos de puntos
propios y aquí para proporcionar la clase de página
variable. Y voy a
almacenarlo en una variable de marco. Así que voy a escribir frame
igual a los marcos de puntos propios. Y aquí tenemos que pasar
el nombre exacto del marco cada vez que necesitamos
llamar a la función. A continuación, voy a utilizar el
importante método de Kinter. Un KiterMthod que da vuelta
al marco,
deja el fotograma seleccionado
por encima de todos los demás fotogramas en un mismo contenedor Es un índice Z. Si sabes cómo
funciona el índice Z en estimación y CSS, lo
entiendes fácilmente. Para eso, necesitamos usar
un método llamado T RIs. Entonces, para escribir frame dot, toma IR. Se va a mover
el cuadro seleccionado frente a otras fletes. Después de eso, necesitamos llamar a
esa función, show frame. Para eso, necesitamos
saltar a nuestras páginas como la
página uno y la página dos, y ahí necesitamos usar
command parameter, command. Voy a usar la línea O así que
escriba Lambda, Lambda y aquí, voy a escribir controller, controller dot método Shoframes Voy a llamar
al método Shoframe. Mostrar fotogramas, marco de subrayado. Después dentro de las rondas
en nuestra primera página, voy a llamar a la página dos. Voy a pasar la página dos aquí. Entonces copia el
nombre de la clase, página dos, y voy a
ponerlo aquí, página dos. En nuestra primera página, si
pateamos el botón, entonces va enviado
a la página dos. la misma manera cuando
estamos en la página dos, entonces necesitamos
acceder a la página uno. Entonces voy a copiar exactamente
el mismo comando y pasar a la página siguiente, y voy a
proporcionar una coma Después de eso, puse el comando y voy a
cambiar el nombre de la página. Aquí, voy a
pasar la clase de página uno. Entonces voy a reemplazar la
página dos por la página uno. Y voy a poner este archivo. Ahora, antes de configurar este
archivo y ejecutar este código, voy a agregar algunas propiedades propiedades a nuestros marcos. Quiero cambiar sus colores
de fondo. Aquí, en nuestro
constructor superit, después del coma,
voy a escribir BG BG significa color de fondo, y quiero usar color azul
claro, algún tipo, claro, azul. la misma manera, quiero usar diferentes colores
para la página dos. Copio la copia
la línea y la pego aquí y voy a cambiar el nombre del color
y voy a
hacerlo verde claro verde claro. Eso es todo, que puedas
identificar las páginas a la perfección. Si configuro este archivo y ejecuto
este código en mi terminal, ahora se puede ver, ahora se
puede ver en nuestra
ventana de Cinter, tenemos un marco Tenemos marco dentro de él y dentro de este marco,
tenemos otro marco. Esta es la página dos. Si quieres saltar
a la página uno, luego presiona ir
al botón de la página uno. Si presiono el botón, ahora puedes verlo
saltar a la página uno. Esta es la página uno. Nuevamente,
si presiono este botón, va a saltar a la página dos. Ahora hay otro problema y déjame mostrarte el problema. Si leo en mi código, ahora se puede ver que
abrió la última página. Quiero decirlo
abrir página para ayunar. Primero, abre la página
dos, pero no la quiero. Quiero abrir nuestra
página uno primero. Para eso, tenemos que seleccionar
eso. Déjame mostrarte dónde. Para seleccionar la página uno, aquí necesitamos llamar a la función
show frame. Fuera del bucle cuatro, aquí, voy a escribir el método de Shaframe de punto
autoestablecido Yo llamo a esta función
y B Default, proporciono el
nombre de la clase, página uno. Entonces por favor establece este archivo
si ejecuto este código en mi arminal ahora
puedes notar que abre la página uno primero
porque porque aquí seleccionamos este, ShoframePage
uno Por defecto va
a abrir la página uno. Si presiono sobre este botón, vaya a la página dos, ahora puede verlo saltar a la página dos. Si vuelvo a presionar el botón,
vuelve a la página uno. Entonces espero que ahora te
quede claro, cómo podemos estructurar en una aplicación
más grande con
la ayuda de clases. Así que gracias por
ver esta
declaración en video para nuestro próximo tutorial. En el siguiente tutorial,
vamos a hablar de herencia, cómo podemos usar la herencia
en aplicaciones tipo.
44. Ejemplo 1 Botón con estilo personalizado: Una vez más, estoy de vuelta
con un nuevo tutorial relacionado a la
programación orientada a objetos con Kiner. Y en este tutorial, vamos a
aprender herencia y reutilización de asistente
en Ginter En lugar de reescribir código de asistente
similar, podemos usar herencia
para extender Kiner Wizard y hacer componentes
reutilizables personalizados Podemos usarlo para botones, etiquetas y formas reutilizables. Y hoy en este tutorial, te
voy a mostrar el primer ejemplo de botón de estilo
personalizado. Vamos a definir
una clase de botón personalizada, y vamos
a usar esta clase, y vamos a
usar la misma clase varias veces para
crear el botón. Entonces comencemos la práctica y veamos cómo podemos crearla. Entonces como puedes ver, estamos en mi
editor de código de salt studio y creo un archivo
Python main dot P. Al
principio para importar el módulo. Tipo de importación Kiner como TK. Después de eso, después de eso, necesitamos definir una
clase para la app. Así que escribe clase mi app. Y esta clase está
en tenido por clase TK, y dentro de ella por ahora, voy a escribir pass. Entonces necesitas pasar cada
nombre igual a igual a función
principal dentro de ella
aquí y dentro de ella aquí, voy a crear el objeto. Que es utilizado por esta clase
y nuestro nombre de objeto es app. Entonces voy a escribir
app dot Min Loop. Y voy a poner
este archivo. Se va a crear una inter ventana básica. Después de eso, volvamos
al MAP aquí voy a
crear el constructor. Dentro del Mapa,
voy a quitar pase y voy a crear
el constructor. Entonces escribe Dave init constructor. Después de eso, dentro de
este constructor, necesitamos convertirlo en
superconstructor Aquí voy a escribir constructor
SuperDTET. A continuación, voy a asignar un
título a esta app, algún tipo, establecer título de punto dentro del ejemplo de botón personalizado
Rundress Ahora, voy a crear una clase que va a
crear unos botones personalizados. Para eso, aquí,
voy a definir otra clase y nuestro
nombre de clase es botón personalizado. Botón personalizado dentro de
los vestidos redondos, nuestra clase es de altura por
esta clase, clase t botón. Entonces dentro de esta clase,
voy a crear el constructor. Escribo D en ella, y dentro de los vestidos redondos, uso self también voy a pasar algunas
variables como parent, text, y command igual a none. Entonces dentro del constructor
init, necesitamos hacerlo, necesitamos hacerlo super constructor
init Después dentro de las rondas, voy a llamar a la variable
padre padre. Por encima de eso, voy a
escribir texto igual a texto. Asigno esta variable a este comando d igual a comando. Así que cada vez que
creamos el botón, necesitamos pasar el
texto del botón, también el comando del botón. Entonces después de eso, voy a aplicar un poco de estilo
a este botón, como el color de fondo, BG, color de fondo para
el color de fondo que
voy a usar en las tablas azul
claro azul claro. Entonces después del color de fondo, voy a solicitar Don
color AG para on color, igual a aquí, voy
a usar color negro. Entonces voy a
aplicar font ton font igual a aquí dentro de
los pechos redondos, voy a usar
fuente aérea twel pixel y bold A continuación, voy a agregar algo de
relleno en XX tipo PAD X, diez, coma, pad Y, cinco píxeles. Voy a establecer este
archivo. Entonces después de eso, necesitamos empacar este botón. Así que escribe método de empaque de puntos propios, y también agrega poco relleno
cuando empaco este botón. Pad en YxS de diez píxeles.
Quiero enviar este archivo. Se puede notar su
mando igual a ninguno. Por defecto, no va
a ejecutar ningún comando. Cuando arriba presionamos el botón, éste va a ejecutar ese
comando que definimos. Así que vamos a crear un botón personalizado. Para eso, necesitamos llamar
al botón custom class, y necesitamos pasar el parámetro el
porque es necesario. De lo contrario,
no va a funcionar. Auto significa objeto en sí mismo, y nuestro botón toma este hola, di hola en nuestra opción de comando, date prisa pasa esta función, di hola, self dot, di hola. De la misma manera, voy
a definir otro botón. Voy a definir
otro botón personalizado luego voy a salir de nuestro Prap Para eso, solo para escribir el nombre
de la clase botón personalizado. Tenemos que colocarlo en un yo, y nuestro botón toma esta
salida y Harry comando, self dot salir de este
método, método rápido. Ahora después
de definir ambos botones personalizados, necesitamos definir la
función, decir hola. Necesitamos definir la función
say hello. Para eso, aquí
voy a escribir, Dave, saluda y dentro del runrass necesitas pasar al sl
el objeto Después de eso, voy a
escribir la declaración impresa. Dentro de esta función, voy a escribir una declaración print. Nuestra declaración de impresión
es hola desde el botón
personalizado y
voy a configurar este archivo. Y nuestra función SL dot quick sale
automáticamente de la aplicación. Self representa
el objeto exacto. Vas a matar
mi aplicación de aplicación. Así que preestablece este archivo si ejecuto
este código en mi terminal. Como puedes ver, crea una ventana y puedes
ver los botones. Estos botones son botones
personalizados. No creamos los
botones varias veces, solo para usar su clase. Aquí puedes ver el
estilo de los teléfonos color de fondo, color forgon, tamaño,
relleno, lo que sea Ya está en una
plantilla de esta clase, botones
personalizados, y la
usamos dos veces en este anuncio. Entonces si presiono, di hola, ahora se puede ver en nuestro terminal, se imprime hola hola
desde botón personalizado. Y si presiono salida, mata la ventana. Mató la ventana de mi aplicación. Entonces así es como podemos usar
clases para la reutilización de asistente. Espero que ahora te quede claro. Gracias por ver este video. Estén atentos para nuestro
próximo tutorial. En el siguiente tutorial,
vamos a crear un campo de entrada personalizado. Vamos a crear
entrada y etiquetar juntos. Así que gracias por
ver este video. Estén atentos para nuestro próximo.
45. Ejemplo 2 Campo de entrada personalizado (etiqueta y entrada juntas): Me alegro de verlos de vuelta,
chicos. Una vez más, estoy de vuelta con otro
tutorial relacionado en decenas
altas y la
reutilización de los asistentes Hoy en este ejemplo,
vamos a crear input fed
personalizado. Vamos a crear
etiqueta y entrada juntos. A veces en formularios GI, siempre
usas etiqueta
y entrada como pareja. En lugar de escribir
la misma etiqueta y código de
entrada una y otra vez, puede crear una clase reutilizable
personalizada. Esa clase va a crear la etiqueta y la entrada juntos. Entonces, sin perder el tiempo, comencemos la práctica
y veamos cómo podemos usarla. Como puedes ver, estamos en mi ist studio
codeditor y ya
creo una plantilla básica
usando class, mi app Ahora, necesitamos crear la entrada
de la etiqueta. Tenemos que crear la clase. Voy a definir
una clase aquí, voy a escribir
class level entry, y esta clase está en
hit by tdt frame class Entonces dentro de esta clase aquí, voy a crear
el constructor. Entonces escribe primero
dentro de las bases redondas, para pasar el yo,
el objeto mismo, luego aquí voy a pasar
la parte y etiquetar el texto. Siempre que necesitemos usar
la clase de entrada de etiqueta, entonces en ese caso,
necesitamos pasar el objeto self y
el texto de la etiqueta. Entonces después de eso, dentro
del constructor de unidades, aquí, aquí necesitamos usar el método
super con parent. Básicamente, va a
heredar del marco. El padre es heredar
del marco. A continuación, dentro del constructor,
necesitamos crear una etiqueta. Así que escribe la etiqueta de punto automático igual a la tapa de
garrapata y necesitas
colocarla en una ventana automática. Además, un texto de etiqueta es esta
variable, texto de etiqueta. Sea cual sea el texto que
pasemos en esta clase, lo va a poner en esa etiqueta, y luego definimos
el después de esta etiqueta, también ult empacar esta etiqueta. Empaque esta etiqueta, slptlabel
dot PAP y la
coloco en PT y ademas agrego
algo de relleno Después de eso, voy
a crear una cuota de entrada. Así bucear SeldTeEntry igual a TKentry y Harry
lo puso en una ventana auto Después de eso, necesitamos
empacar el campo de entrada. Entonces, para empacar este campo engy, necesitamos escribir selt entry
dot pack Math Después de empacar el campo engy, voy a empacar
el auto objeto Quiero decir todo el encuadre. Para eso, voy a
escribir método SalpTPAG, y agrego poco padding en Ahora, vamos a saltar a
la aplicación M. Aquí, voy a
definir al objeto que es creado por
la clase de entrada de nivel. Nuestro primer
nombre de objeto es el campo name. Entonces escribe el punto nombre campo igual al nivel de entrada, nuestra clase, aquí llamamos a nuestra
clase en un principio para proporcionar la
variable de celda donde
vamos a poner nuestro campo de entrada de
nivel, que es el objeto en sí, y luego proporcionamos
etiqueta nombre de texto. A continuación, voy a volver a usar
la misma clase. Y esta vez voy
a crear un campo de borde. Cellbt H campo igual
a entrada de etiqueta, y esta vez voy
a pasar este texto Y esta vez voy
a pasar este texto en nuestra era de etiquetas y
voy a configurar este archivo. Ahora, después de configurar este archivo y ejecutar este código
en mi terminal, aquí se puede ver que
crea la etiqueta también el campo de entrada. Y como pueden ver, aquí, llamamos a esta
clase dos veces. Uno es para el campo de nombre
y otro es para el campo H. Por eso utilizó la
etiqueta de entrada oración. Ahora, necesitamos crear un botón. Pero antes de crear el botón, antes de crear
el botón enviar, necesitamos obtener el valor
de este campo de entrada. Para eso, voy
a definir una función. Así que fuera del constructor init, fuera del constructor init, voy a definir un valor de puerta de
función Dave valor de puerta, luego
dentro de esta función, luego dentro de esta función, quiero devolver el campo de
entrada tipo de valor return el punto entrada
punto Método de Puerta. Sea cual sea el valor que pasemos
en los campos de entrada, va a obtener
el valor y
necesitamos moverlo dentro
del nivel de sangría, lo contrario
pasará por una A.
Eso es bueno. Ahora, vamos a crear un botón de envío
dentro de la aplicación principal. Aquí, voy a
definir un botón de enviar. Enviar botón igual al botón
tdt y
lo probamos en una ventana auto y nuestro botón toma
para enviar y
va a comandar esta
función mostrar datos Por encima de eso, necesitamos
empacar este botón. Para empacar este botón,
voy a escribir submit sco
button dot p. método. Ahora necesitamos definir
la función que va a imprimir el
nombre y el valor de borde. Para eso, fuera del
constructor de nit en constructor, voy a definir
la función, Dave mostrar datos dentro la ronda presiona para
pasar celda después de eso, al principio, quiero
imprimir el nombre Para imprimir el nombre,
necesitamos obtener valor de este método de valor G, que está en nuestra clase. Desde la clase de entrada de nivel, necesitamos acceder a la función de valor
G. Entonces para escribir, imprimir, nombre,
aquí, ayuda punto nombre
campo punto punto Gt Val. Del valor G,
vamos a extraer el valor
del campo name. Como puedes ver, creamos el
objeto name field aquí usando esta clase. Sea cual sea el valor que pasemos
en el campo de entrada, va a obtener el valor. la misma manera a la misma manera, voy a imprimir la función
hFil value type print gebfel dot getValue,
y va a obtener el valor y va a Después de establecer este archivo, si ejecuto este código en mi
terminal y llenar este campo de entrada
nombre uno y edad 29. Después envía ese botón, podrás ver el resultado
en mi terminal, nombre anuncio H 29. Este es un ejemplo con campo
de entrada personalizado. Aquí creamos etiqueta y campo
de entrada juntos. Creamos una clase de la misma
y usando esta clase, creamos un total de dos campos de
nombre de objeto y Hfeld la misma manera, puedes crear todo lo que
quieras. Depende de ti. No es necesario escribir el
mismo código una y otra vez. Entonces ese es el beneficio
de usar clase. Así que gracias por ver
este video estad atentos para nuestro Next Tutorial.
46. Convertir GUI de Python en EXE: Esta es la parte más
importante de este tutorial porque
en este tutorial, vamos a
aprender a convertir nuestro archivo Python en archivo X. Imagina que construyes una gran aplicación
Python GI. A lo mejor es una calculadora, editor de
texto o un juego, y ahora viene el gran ion. ¿Cómo se comparte
el archivo con otros? ¿Quién no conoce Python y
ni siquiera instala Python
en su computadora? Entonces cómo puede usar la
aplicación GI que construyas. En este tutorial,
vamos a aprender cómo podemos convertir el programa
Python un archivo ejecutable con la
ayuda de un instalador de módulo Pi. Al convertir tu código
en un ejecutable, tu código se vuelve portátil. También profesional
y fácil de usar. Cualquiera puede hacer doble clic
en él y ejecutar el programa sin
preocuparse por dependencia de
la instalación
y la versión de Python. El usuario necesita comodidad, y hoy vamos a
aprender cómo podemos darle. Comencemos lo práctico y saltemos a la pantalla de la
computadora. Como pueden ver lado a lado, abro
mi Shell de Windows Power y mi directorio de
trabajo actual. Y en mi directorio de
trabajo actual, tenemos un archivo Python, y
voy a convertir este archivo
Python en Axifle En nuestro primer toque, necesitamos
instalar un módulo. Vamos a utilizar el instalador de
Pi para convertir este
archivo Python en un archivo EX. Aquí voy a escribir
Pep Install Pi Installer. Entonces necesitas
presionar el botón Enter. Como puedes ver,
requisito ya satisfecho porque ya
descargo este módulo, pero necesitas completar
el proceso de descarga. Entonces necesitas
usar el comando CD. Aquí, voy a escribir CD, C, D. Después de eso, necesitamos
proporcionar un espacio, y voy a copiar la ubicación
exacta de esta carpeta. Copio la ruta de la carpeta. Y aquí, voy a
pasar la ruta de la carpeta. Después de eso, para abrir la carpeta, GI a EXE, necesitamos
pasar una barra diagonal cuatro, y voy a darle a Enter Ahora estamos en esa carpeta,
esta carpeta en particular, y ahora voy a convertir este archivo principal punto Pi en
un archivo de distribución. Para eso, aquí, voy a escribir Pi instalador, Pi instalador. Instalador pi, space
dash dash y quiero que
sea un archivo, un archivo. Después de eso, voy a
proporcionar un espacio y necesitamos pasar el
nombre fino punto principal pi. Si presiono Enter, lo va
a convertir en un archivo EX, pero hay un problema. El problema es que cada vez que
abrimos nuestro archivo EXE, va a abrir la
terminal. Déjame mostrarte. Voy a convertir
este archivo Minding Pi
en un archivo de distribución
hollín, Enter. Como se puede ver
iniciar el procesamiento. Y ahora puedes ver en mi directorio de trabajo
actual, crea alguna carpeta, nosotros carpeta, carpeta de distribución, y algún archivo.
Sigue funcionando. Tenemos que esperar algún tiempo
para completar el proceso. Déjame mostrarte. Por último,
se completa el proceso. Y si abro
archivo de distribución con este archivo, ahora puedes ver nuestra aplicación, la convertimos con éxito en un EXFLE Si trato de abrir este archivo, como pueden ver,
directamente lo ejecuto. Pero el problema es que abrió terminal, pero
no lo quiero. No quiero
abrir terminal cuando ejecuto este archivo EXE. Para resolver el problema, no necesitamos usar ningún comando de consola. Déjame mostrarte, alguien que lo
hizo esta Consola, también, voy a eliminar todos los
archivos como archivo Wheel, archivo de
distribución, y el MinSpaXfle Para resolver el problema de la consola, escribimos necesitamos
agregar este comando. Por instalador, un archivo, entonces necesitamos escribir ninguna consola, y aterspace necesitamos pasar
nuestro nombre de archivo punto principal pi Entonces voy a darle a Enter. Up hit Enter, como puedes
ver, empieza a funcionar. Tenemos que esperar algún tiempo
para completar el proceso. Como puedes ver
completa el proceso. Ahora, si abro mi carpeta de
distribución
y hago clic en este archivo EX, como pueden ver, ahora sin
abrir la consola, se abre directamente
la aplicación. Ahora puedes compartir
tu aplicación con cualquier persona sin dudarlo. Ahora cualquiera abre fácilmente esta aplicación sin
abrir la consola. Esta es nuestra
aplicación de lista de tareas y ahora quiero asignar un icono a nuestra
aplicación a nuestro archivo EXE. Por defecto,
asigna este icono. Este icono de archivo. Ahora quiero asignar algo relacionado con
esta aplicación. Como pueden ver, estoy
en mi navegador y aquí busco la descarga del archivo
icono. Va a proporcionar
múltiples sitios web que proporcionan iconos, archivos punto CO. Aquí voy a abrir el
primer sitio web, éste. Entonces voy a saltar
al modo más sección C. Y aquí, voy
a buscar archivo. Quiero descargar icono de archivo. Desde aquí, puede
seleccionar cualquiera de ellos. En lugar de usar el icono de archivo, puede usar cualquier icono,
como una calculadora. Alguien busca calculadora. Voy a
buscar calculadora y voy a descargar este
icono de lo contrario ese icono. mí me gustaría ir con
éste. Yo selecciono éste. Después de
seleccionar este, voy a seleccionar Pity y
quiero seleccionar icono. Entonces voy a
seleccionar la resolución. Y recuerda que necesitas
seleccionar tanto bajo como puedas. Voy a usar este
132 pixel por 32 pixel, este, y voy a dar
click en el botón Descargar ICO. Descargar ICO.
Va a descargar automáticamente tu archivo a
la carpeta de descargas. Si abro esta carpeta aquí, se
puede ver el icono y
voy a cortar este icono de esta carpeta y voy a poner en mi
directorio de trabajo actual, éste. Además, voy a
renombrar este icono. Voy a
lograrlo. Voy a llamarlo app A, doble P. Ahora si te muestro la
extensión de archivo de este archivo, puedes ver que es un archivo CO app.co y esto es lo que necesitamos Ahora voy a ejecutar
el comando Bash, que va a asignar el
icono a nuestro archivo EX Al principio, necesitamos abrir el directorio de trabajo actual
en mi Windows Powershell Puedes hacerlo por comando cd, pero aquí voy a alabar comando
enviado y
luego dentro de la carpeta, voy a alabar patada derecha y aquí puedes ver una opción abierta Powershell
Window aquí Si hago clic en él,
va a
abrirlo directamente abrir directamente la
venta de energía de Windows en esta carpeta, y luego voy
a escribir mi código. Ahora aquí necesitamos escribir el comando
Bash que va a convertir eso va a convertir
el archivo Python a A Ex Además, voy a asignar este
icono a esta aplicación. Para eso, aquí necesitamos
escribir Pi installer, Pi installer. Después del instalador tipo Pi, entonces tenemos que proporcionar, necesitamos definir quiero que
sea un archivo, un archivo. Después de eso, no quiero abrir consola así que escribo dash
dash, no consola. Entonces voy a
escribir dash dash, voy a asignar el icono para asignar el icono , escriba icon, icon igual a
icon igual a app o icon name app dot
Cofile entonces por fin, necesitamos pasar el archivo Python nuestro nombre de archivo Python
es punto principal Pi Después de eso, si le pego a Anchor, como pueden ver,
empieza a funcionar. Y tenemos que
esperar algún tiempo
para completar el proceso. Como puedes ver,
completa con éxito el proceso. Ahora si abro mi
carpeta de distribución y ahora se puede ver en nuestra aplicación
en nuestra aplicación EXE, se le asignó el icono. Ahora nuestra aplicación se ve
mucho más auténtica que anterior porque aquí
asignamos icono a esta aplicación. Ahora bien, si hago clic en esta
aplicación, como pueden ver, no abre ninguna
consola y abre
directamente nuestra
aplicación para hacer lista. En este tutorial, solo
trato de mostrarte cómo podemos asignar icono en nuestra aplicación. Aquí aprendemos cómo podemos asignar
icono a nuestra aplicación.
47. Proyecto 1: aplicación de lista de tareas: Así que bienvenido a nuestro primer
proyecto relacionado con Kin tart GUI. Y hoy en este
proyecto,
vamos a construir una lista de tareas pendientes, una lista simple de hacer. Entonces veamos la demostración de cómo va a funcionar nuestro Tudlis Como pueden ver, aquí
abrí mi aplicación, y esta es nuestra
aplicación parece. Primero, tenemos un campo de entrada, luego tenemos un botón en Tarea, luego eliminar el botón Tarea. Después de eso para mostrar el
elemento de la lista, tenemos un list box. Y dentro de este list box, vamos a mostrar
todos los elementos de la lista uno por uno. Dentro de este cuadro de lista,
podemos agregar los elementos de la lista. Además, podemos eliminar
los elementos de la lista con la ayuda de este botón. Al principio, voy
a agregar un ítem de lista. La primera tarea que voy a
añadir en esta lista es la limpieza. Entonces si escribo limpieza y hago
clic en el botón Tusk, como puedes ver, agrega
la tarea en nuestra lista De la misma manera, voy
a agregar dos tareas más. Después de la limpieza,
voy a agregar lavandería. Entonces para escribir y luego voy a agregar la tarea en
nuestra lista ToDoList Entonces en mi lista de Todo, voy a agregar
compras de abarrotes, y voy a presionar en el botón
Tusk y voy a
agregar la tarea en nuestra lista Ahora, en nuestra lista de Turo, agregamos un total de tres artículos. Ahora bien, si quieres
eliminar uno de los artículos de esta lista de comestibles, entonces voy a eliminar la lavandería. Selecciono lavandería y presiono
el botón Eliminar Tarea. Después de presionar Eliminar
tarea, como puede ver, eliminó el elemento
del cuadro de lista. Es un proyecto muy sencillo
y mejor para
iniciar el desarrollo GI
con Python Kinder Aquí vamos
a aprender cómo
podemos extraer datos en campo de entrada, cómo podemos procesar los datos, cómo podemos eliminar los datos, cómo podemos mostrar los datos en
nuestro cuadro de rezagos, etcétera Sin perder el tiempo,
comencemos la práctica. Como pueden ver, estamos en mi editor de código de estudio Visa y creo un
archivo Python main dot pi. Al principio, voy a
importar el módulo TK, tipo Import Kinar como TK Entonces voy a
importar otro módulo. Necesitamos importar cajas de
masas de Kiner. Para eso, voy a escribir
desde Kiner importar cajas de masas. Después de eso, después de eso, voy a crear
la ventana principal. Escribo raíz igual
a Tik punto clase T. Held crear un objeto usando clase
Tk para crear
la ventana principal. Entonces voy a agregar un título. Entonces escribo el
título de punto raíz para hacer la lista. Además, voy a
establecer la geometría, y voy a establecerla geometría de
punto raíz 400 por 400. Es una caja cuadrada. A continuación,
voy a crear entrada. Que va a tomar
entrada del usuario. Para eso, voy a
definir una entrada variable, entrada igual a entrada pot. Dentro de la prensa redonda, colocamos en una ventana raíz. Después definimos con 30 píxeles. Después de eso, necesitamos
empacar este campo de entrada, así que tecleo entry Doc back method, y aquí agrego algo de padding en YxS y asigno
diez pixel padding. Después de eso, necesitamos
definir dos botones. Primero para definir el botón Agregar y luego definir
el botón de eliminar. Voy a definir una
variable llamada botón add. Agregar botón igual
al botón t punto. Aquí utilizo vidrio botón
del módulo TK. Entonces en tales rondas, colocamos el botón
en una ventana raíz y nuestro botón toma Ts y
nuestro botón toma es agregar colmillo y
definimos y aquí definimos W
a este botón, 15 píxeles Entonces tenemos que
empacar este botón. Corbata agregar botón punto PAC MTO,
voy a agregar alguna almohadilla de
relleno en YXSFivePixel De la misma manera, voy
a definir otro botón. Aquí, voy a
definir botón de borrar. Entonces para escribir, eliminar botón
underscoe igual a t Button Glass, lo
colocamos en una ventana raíz y nuestro botón toma
esta tarea de eliminar, y asignamos esto
con 15 píxeles Después empaco este
botón, así escribo, borrar botón punto método PAC. Empacar Dentro del proceso redondo, voy a agregar
pad, Y, cinco píxeles. Voy a configurar
este archivo y para mostrar el
elemento de la lista en una lista turística, necesitamos crear un list box. Voy a definir otra
variable menor caja. Cuadro de lista igual a escuchar, necesitamos usar el método List box. Escribo tdt Cuadro de lista. Lo colocamos Aquí
lo colocamos en una ventana raíz y definimos ancho
50 y alto 15, nuestro modo de selección
es tick dot singer. Recuerde, el modo de selección permite seleccionar solo
una tarea a la vez. Solo puede seleccionar una tarea a la vez del cuadro mínimo. Después de eso, voy
a empacar este cuadro de lista. Tipo I, método de paquete de
puntos de caja oriente. Camino dentro de los vestidos redondos, voy a agregar
algo de emparejamiento Pat a diez píxeles de
x y voy a establecer esto
después de establecer este archivo, voy a agregar el bucle principal porque no
agregamos el bucle principal. Sin el bucle principal
, no va a funcionar. Es un bucle de eventos Kiner. Escribo root dot main loop, y voy a configurar este archivo. Básicamente, este bucle
mantiene la ventana abierta y receptiva hasta que
el usuario la cierre. Después de configurar este archivo, si ejecuto
este código en mi terminal, es como se ve nuestra
lista de Turo. Teníamos el campo de entrada donde vamos a poner nuestra tarea. Tenemos botón Atax y botón de
eliminar tarea. Ahora bien, si trato de sentir
algo como tarea y trato de agregar
la tarea en esta lista, no
va a funcionar porque no
creamos la
función para esos botones. Necesitamos crear una función
para En el botón de tarea, también indicamos función
para el botón Eliminar tarea. Consigamos las funciones. Cruzo mi terminal
y vuelvo al código. Al principio, al principio, voy a definir una
función llamada a la tarea. Escribo DF en la tarea. Luego dentro de esta
función, al principio, necesitamos obtener el valor
de este campo de entrada. Quiero establecer este feed de entrada. Sea cual sea el tipo de usuario en ese campo de entrada,
necesitamos obtenerlo. Para eso, voy a definir una variable y nuestra
variable m es tarea, por lo tanto igual al método de entrada
punto Gate. Usando este método,
podemos obtener el valor. Ahora necesitamos establecer
una condición IP. Tarea HNotyeTask EP, no
igual a igual a en blanco. Entonces dentro de esta condición IP, quiero poner datos
en este list box. Para eso, necesitamos
usar el método insert. Así que escriba list box punto insert. Si nuestro interferente no está
vacío, en ese caso, va a agregar el
elemento de la lista a este list box. Como puedes ver, en su interior, utilizamos total dos
parámetros t punto. Usando eso, podemos agregar el
elemento final de la lista. Entonces pase lo que pase, va a agregar
final de la lista. Entonces, si hay
datos existentes en nuestro cuadro de lista, entonces va a agregar el
nuevo final de datos de la lista. Después pasamos la tarea, la tarea exacta que obtenemos
de la entrada fieed Ahora después de agregar la
tarea con éxito, necesitamos despejar el entrfeelt Para ello, necesitamos
eliminar método. Entonces tip entry dot delete, y voy a
borrar todo. Entonces paso de 02p punto. Entonces también ET manejar el o. En nuestras partes s en nuestro bloque Ls, quiero mostrar mensaje dor. Entonces desde el cuadro de
mensaje, cuadro de mensaje,
quiero mostrar la advertencia. Mostrar advertencia dentro de
las prensas redondas, dentro de los puertos dobles, voy a teclear advertencia. Entonces una coma, o
nombre de ventana es advertencia y luego
una coma a y aquí, voy a escribir,
por favor ingrese una tarea, y voy a configurar este archivo Ahora, después de crear la función de tarea
adt, necesitamos llamar a la función
en nuestro botón usando el parámetro
command command.
Déjame mostrarte. En nuestro botón de anuncio
aquí, Ater coma, voy a escribir comando,
comando, y voy a pasar
el nombre de la función en la tarea Voy a establecer este
archivo. Después de configurar este archivo, si ejecuto este código en mi
terminal y trato de agregar una tarea, supongamos tarea, tarea
y presiono en el botón Tarea, como puedes ver, agrega
la tarea en nuestro list box. Además, se despejó
el campo de entrada. De la misma manera, voy
a agregar otra tarea. Entonces voy a agregar
otra tarea
como comer primero un freno saludable. Entonces voy a agregar la
tarea en nuestra lista de tareas pendientes. Después de presionar el botón Agregar
en el botón Tarea, se agrega en nuestra lista de tareas. Ahora quiero eliminar una de
las tareas de esta para hacer menos. Después de seleccionar la tarea
del cuadro de lista, quiero eliminar. Si presiono el botón de borrar, no
lo va a eliminar. Necesitamos crear una
función que vaya
a eliminar el elemento de la lista. Vamos a definir otra
función, eliminar tarea. Entonces, debajo del método at task, voy a escribir
Dave delete task. Entonces dentro de este método de
eliminar tarea voy a usar
try y ext block. Intenta manejar el
error a la perfección. Prueba dentro del bloque Try. Aquí voy a definir una
variable llamada tarea seleccionada, tarea seleccionada igual a
listbox punto selección de autos El método de selección de autos, escrito un Tapl de índices
seleccionados Si quieres seleccionar varios artículos anticipados, sí, puedes. Se va a crear
un tapel de eso, entonces tenemos que eliminarlo. Aquí, voy a escribir
listbox dot Delete método, y dentro de él, voy a
pasar la tupla de tareas seleccionada Y si no seleccionas
nada presionas, pero presionas el botón de borrar, en ese caso, necesitamos
mostrar mensaje de error. Entonces en nuestro bloque except, excepto dentro de este bloque, quiero mostrar un mensaje de
advertencia. En algún momento cuadro de mensaje
dot show warning. Y nuestro windoame es warning
y nuestro mensaje de advertencia es, por favor seleccione una tarea para eliminar Voy a establecer este archivo.
Ahora después de crear el método, eliminar tarea, necesitamos llamar
al método en nuestro
botón, eliminar botón. Copio el nombre del método, y aquí, voy a
usar el parámetro de comando. St coma, voy a escribir
comando, opción de comando. Comando igual a nuestra
función eliminar tarea, y voy a satisfacer. Ahora para satisfacer, voy a ejecutar este código en mi terminal, y aquí está nuestra lista de tareas pendientes. Al principio, voy a agregar
alguna tarea en esta lista también. Nuestra primera tarea es
despertar y hacer tu cama. Agrego la tarea en
esta lista de hacer, y como pueden ver
actualizar alabanza en botón, despeja nuestro interfiel Ahora nuestro interfield es que si vuelvo a alabar en el botón de Tarea, aquí puedes ver un mensaje de
advertencia Por favor ingrese una tarea. Entonces no podemos dejarla negra. Entonces voy a
agregar otra tarea, desayuno
EKLD y
voy a agregar la tarea Después de eso, quiero
eliminar una de las
tareas de esta lista, como despertar
y hacer tu cama. Después de seleccionar la
tarea, si hago clic en, eliminar el botón Tarea, como se
puede ver borra la
tarea de la lista de tareas pendientes. Espero que ahora te
quede claro cómo podemos crear una lista
básica por hacer. Este es nuestro primer ejercicio, así que lo hago muy sencillo. En nuestros próximos tutoriales, vamos
a hacer muchas cosas. Gracias por ver este video schedue para nuestro próximo tutorial
48. Guarda datos de forma permanente con JSON: Entonces esta es la segunda parte y parte
avanzada de este tutorial. Y en esta sección, vamos a aprender
cómo podemos guardar los datos en nuestra
lista de tutores de forma permanente con la ayuda de JSM como puedes ver Hero abrir
mi aplicación anterior, y nuestra aplicación, no
guardar los datos de forma permanente Si agrego los datos en nuestra lista, si borro la aplicación, lo contrario, mato la aplicación, y si vuelvo a ejecutar mi
aplicación, ahora nuestra aplicación
se convierte en huevo vacío, necesitamos guardar los Necesitamos guardar los datos
permanentemente en nuestro list box. Ahora déjame mostrarte
otra aplicación. Esta es la versión actualizada
de esta aplicación donde guardamos los datos forma permanente con
la ayuda de Jason. Notación de objetos JavaScript. Ahora bien, si mato esta
aplicación, de lo contrario, borre el terminal, de lo contrario, elimine el terminal,
luego vuelva a ejecutar este código. Déjame mostrarte como puedes ver, aún tenemos los
datos en nuestra lista. No elimino los
datos de forma permanente. Esto es lo que hoy vamos a
construir en este proyecto. Básicamente,
vamos a actualizar nuestro proyecto existente,
comencemos. Como puedes ver, estamos en mis usuarios
studio cod editor y
abrí mi anterior archivo
Python main dot Pi. En ese archivo,
creamos ToDoList usando Kiner y ahora necesitamos guardar nuestro valor ToDoList Para ello, vamos a utilizar la notación
JSN JavaScript Object. Ahora, primero,
voy a importar JSN. Aquí voy a
escribir import JSN. Después de eso, voy
a importar módulo OS, así que voy a escribir import Os. Para guardar y cargar la tarea, vamos a utilizar JSNFV Voy a crear un
JSNFive con JSNETension. En mi directorio de trabajo actual, voy a escribir task dot JSON. Por ahora, está completamente vacía. Después de eso, voy a cargar
este JSNFle en una variable. Para eso, voy a
definir una variable
y/o variable es archivo de datos, archivo underscoe de
datos
igual a tarea punto Ahora necesitamos crear dos funciones
totales para
guardar los datos JSN y
cargar los datos de Jasn Al principio, voy a
crear cómo podemos guardar los datos de JSN en nuestro menor cuadro Quiero decir que necesitamos guardar la
tarea de List box
actual en JSNFive Para eso, voy
a definir una función. Aquí, voy a
definir una función y nuestro nombre de función
es Dave save task. Después de eso, dentro de
esta función, voy a recuperar
todos los artículos
inA en la caja este como taple Para eso, voy a definir una variable y nuestro nombre de
variable es tarea, tarea igual a como método box
dot gate. Después dentro de las rotondas, aquí seleccionamos todos los elementos de
la lista, todos los elementos de menor caja A continuación, necesitamos abrir este JSNFLE que
guardé en un Para eso, voy a
usar con método abierto. W abrir dentro de las redondas voy a pasar el archivo de
datos archivo de datos, y quiero
abrirlo como modo de escritura Modo, escriba W ya que voy a crear un
puntero de archivo que es mono. Entonces dentro de este archivo, quiero usar el método DAP. Sm tipo JSnT estiércol. Después dentro de los versos de ejecución, voy a proporcionar la tarea, y quiero escribir la tarea
en nuestro A file pointer, A, luego apacma, voy a
escribir indio indio cuatro Ahora la pregunta es
¿por qué usamos IndiantF? Indios iguales a
cuatro. Porque al guardar datos en un archivo JSN, Python puede escribirlo
todo en una línea Es muy difícil de leer. Entonces, para que sea un formato
legible por humanos, usamos Indiant four Le dice
a Python que formatear el JSN con una sangría de
cuatro espacios Depende de ti
puedes usarlo o no. Pero si lo usas, entonces puedes leer los datos fácilmente
desde el JSNFle Entonces después de obtener el
valor de la menor caja, lo
guardamos en un JSNFle Ahora voy a
llamar a esta función. Entonces copio el nombre de la
función Saffle, y voy a llamarlo
cuando use AdTask Mathod Después de eso, voy a llamar
a este método, Guardar tarea. Y
voy a poner este archivo. Así que cada vez que presionamos el botón
Agregar, este botón, botón de
agregar, va a
comandar en método de tarea, esta función, en tarea. Y como puedes ver en
nuestro método at task, cómo llamamos método sep task. Y este método va a establecer
los datos a este archivo Jason. Entonces, vamos a golpear. Pero antes ejecutar este código en mi terminal, te
voy a mostrar
el archivo Tas dot GSN Por ahora, como puedes ver,
es un archivo vacío. Ahora, vamos a ejecutar el código. Y aquí, voy
a agregar una tarea. Entonces nuestra tarea es la tarea. Voy a presionar
en el botón Tarea. Después de pulsar el botón,
como puedes ver, se agrega la tarea en mi list box. Ahora bien, si te muestro
mi tsdtjsnfle, déjame mostrarte entonces
voy a Cierro esta ventana y
cierro este programa. Ahora si vuelvo
a la tarea punto JSNFle, aquí se puede ver Se guarda el Jata en
nuestra tarea de JSNFle. Ahora si me agacho a mi código
y vuelvo a ejecutar este código, pero
aquí no se puede ver nada porque
acabamos de establecer el archivo No volvemos a cargar el archivo
en nuestro list box. Ahora necesitamos crear
otra función que vaya
a cargar el archivo a
nuestro list box nuevamente. Volvamos al
código. Ahora voy a definir otra función
llamada Load task, Sumar type, Dave, load
task dentro de la función Dentro de esta función, si
la ruta del archivo es existir, quiero decir si los archivos JSON existen en nuestro directorio tipo, si s punto p punto existen, archivo de
datos, entonces dentro de
esta condición IP, quiero abrir este
archivo para abrir este archivo, aquí escribo con abierto con abierto, luego dentro de las prensas redondas, aquí abro el archivo de datos
y abro este archivo en modo
lectura como AF es archivo puntero. Después dentro del capó abierto Math, luego dentro de este archivo,
quiero usar try and except blog. Pruébalo voy a probar dentro del trib doc help para definir
una variable llamada task Tarea igual a, quiero cargar la tarea Soong tipo
Json método de anuncio Cargar, dentro del proceso de ronda, voy a pasar
el puntero de archivo F. Entonces voy a
ejecutar un seguimiento para IM en tarea para iteming tarea
dentro de este bucle de otoño, luego quiero insertar el
ítem al menos cuadro Así que escriba como caja, como
método de inserción de punto Box. Insertar. Después dentro de los autobuses redondos, y quiero agregar el menos
ítem final del list box. Escribo P punto Maththub coma
y quiero agregar el artículo. Como puedes ver, ella escribe
un elemento ortográfico incorrecto,
no en el artículo de artículos de TM.
Voy a establecer este archivo. Después dentro de este tri bloque, primero, voy a
cargar el JSNFle Para eso, voy a definir
una variable llamada task,
task igual al método de carga JSON. Carga. Dentro de las Rundbas
voy a pasar el archivo A. Entonces voy a
ejecutar un bucle de cuatro, algún tipo por tarea, tarea en
tarea Después dentro de este bucle de cuatro, quiero insertar la tarea. Quiero insertar la
tarea en el cuadro de lista. Para eso, voy a escribir
List box dot insert method. Insertar. Dentro de las llaves
redondas aquí, voy a escribir TK punto d. Quiero agregar el
final de la tarea de este cuadro de lista, y luego voy a
pasar la tarea real Después de abrir el archivo,
va a probar este código. Después de eso, después de eso, en nuestra condición except, excepto Json dot
Jason error del decodificador, luego dentro de este bloque, quiero escribir pass. Ahora la pregunta es ¿cuándo
va a lanzar una flecha? Cuando nuestro archivo esté
completamente vacío, entonces va a
lanzar una flecha. Cuando va a lanzar un error, lo
escribo pass, va a significar
que no
va a lanzar ningún mensaje de
error, solo va a saltarse esa porción. Escribo un solo en
comentario caso de archivo vacío, y voy a configurar este archivo. Ahora voy a llamar a
la función load task, copiar el
nombre de la función load task, y voy a llamarla antes del bucle principal en esa posición. Entonces necesitamos llamar a la función Set task en nuestro método delete,
delete task method. Entonces después de eliminar la tarea, también, necesitamos establecer la tarea en nuestro archivo SN. Voy a
establecer este archivo. Después de configurar este archivo, si ejecuto
este código en mi terminal, ahora puedes ver después de ejecutar
este código en nuestra terminal, ahora puedes ver cómo entrena la tarea existente
desde el archivo GSN Si agrego una nueva tarea, supongamos música y agrego la
tarea y cierro la app, después de cerrar la app,
si vuelvo a ejecutar este código, ahora puedes notar que no
borre nuestra tarea No elimino nuestra
tarea de forma permanente. Guardo toda la tarea en un archivo
JSN en ese archivo. Con la ayuda de JSN
se nos ayuda con éxito a
guardar los datos para que nuestros eliminemos de la lista Espero que ahora te quede claro, gracias por ver
este video estad atentos para nuestro próximo proyecto.
49. Proyecto 2: calculadora simple: Hola, chicos, me alegro
de verles de vuelta. Una vez más, estoy de vuelta
con un nuevo proyecto, y hoy en este proyecto, vamos a construir una calculadora
simple GI con Kiner que realice operaciones aritméticas
básicas
como suma,
sustracción, multiplicación Como puedes ver, tenemos botones
numéricos 0-9, entonces tenemos opción clara, también evaluamos con expresión Probemos la calculadora. ¿Funcionan correctamente o no? Voy a escribir tres, dos, y voy a
multiplicar con 52. Y si alabo igual a seno, como se puede ver
escrito el resultado. Con eso, quiero -356. Entonces si alabo igual a
seno, está escrito el resultado. Y si lo divido por tres, entonces presione igual a aquí se puede ver
escrito el resultado. Ahora bien, si quieres
borrar el campo de entrada, solo necesitas alabar a C este botón y va
a borrar el campo de entrada. Es una calculadora básica de símbolos. Veamos cómo podemos crear
esta calculadora de símbolos. Empecemos la
codificación. Entonces finalmente, estamos en mi editor de código visual
studio. Al principio, voy a
importar el módulo Kiner. Aquí voy a
importar Kiner como TK. Después de eso, voy a definir voy a
definir la ventana raíz. Voy a escribir root
igual a t punto Tlass. Entonces voy a
definir el título. Ato el título de punto raíz y
es una calculadora sencilla. Al fin, voy a definir
la geometría. Entonces escribe
geometría de punto raíz, 300 por 400. Y por último, voy
a iniciar el bucle principal, el bucle principal del punto
raíz. Ahora, al principio, voy
a definir una cadena vacía. Así que escriba expresiones igual
a es cadena vacía. Esa cadena vacía va a contener las
expresiones matemáticas, y luego voy a crear una variable de entrada para almacenar
el valor del campo de entrada. Así que ate h entryWaentry
guión bajo, donde,
entryware igual a TK punto, entryware igual a TK punto Después de eso, voy a
crear un campo de entrada. Así que escribe nuestro variablem
entrada entrada igual a t método de entrada,
tit clase de entrada, y lo ponemos en una
ventana raíz y aquí
asignamos variable de texto
igual a ware de entrada, establecemos área de fuente y tamaño de
fuente es 20, aquí alineamos nuestro
texto lado derecho Escribo justificar a la derecha. Justificar a
la derecha, alinear el texto a la derecha, como una calculadora normal. Después de eso, necesitamos
empacar este campo de entrada. Voy a escribir
entrada dot pack, sentirme igual a ambos y Hero usa algún acolchado interno
desde la dirección SS, Ipadx luego usamos acolchado
exterior Ahora para los botones de la calculadora, necesitamos tomar una, necesitamos
tomar un marco de botón. Aquí voy a escribir
button frame igual a tick dot frame y colocamos
el frame en una ventana raíz, y luego empaco esta variable de marco de
botón. Ahora dentro de este marco de botones, vamos a poner
todos los botones. Como 0-9, botón de par, igual dos más signo de multiplicación
sinusoidal dividido sinusoidal, etcétera, para
definir los botones,
aquí, voy a
usar una Voy a definir
una variable de botones. Después después dentro del cuadrado ss voy a usar valores de botón
anidados En nuestra primera fila,
imprimimos siete, ocho, nueve y seno dividido. Después después de la coma, voy
a pasar otro valor anidado. Quiero pasar otro valor de lista
anidado. Aquí, voy a poner 456
estrellas y en la siguiente fila, voy a escribir
uno, dos, tres, y menos seno, en nuestra última fila, voy a escribir en esta lista, voy a pasar cero
auto igual a más seno. Es una estructura básica
de calculadora. Básicamente, se trata de una lista anidada que define el diseño
de los botones fila por fila Ahora, usando esta lista, necesitamos crear los
botones dinámicamente. Para eso, voy a usar un seguido. Déjame mostrarte cómo. Aquí voy a atar
para fila en botones, cada una de la fila en botones, luego dentro del bucle de otoño, luego quiero crear
nuevo marco para las filas. Aquí voy a atar frame,
frame igual a ticket
dot frame class, y dentro de él, voy
a pasar marco de botón. Aquí ponemos nuestro nuevo marco
dentro del marco de botón. Entonces empacaremos este marco. Entonces, para atar el paquete de puntos del marco, expandirlo igual a
través y llenar ambos. Expande y rellena ambos, asegúrate de que se estiren bien. A continuación, tenemos que revisar
cada uno de los elementos de la lista. Dentro de la lista,
tenemos fila Op list. Y en esta fila, tenemos múltiples elementos de lista. Así que tenemos que revisar
cada uno de los elementos de la lista. Para eso, de nuevo,
voy a usar cuatro bucles. Entonces voy a escribir dentro este cuatro bucle para
botón en fila, luego dentro de este bucle fol, luego quiero
crear los botones. Usando este seguimiento,
apuntamos a cada uno de los personajes y
lo almacenamos en una variable de botón. Entonces B igual a Tk Dot botones y
lo colocamos en una ventana de marco, y nuestro botón toma
este exacto el botón. Y nuestra fuente es
aérea y el tamaño de fuente es 18 y se eleva el relieve. Físicamente, se le da
un estilo de borde elevado. Entonces dijimos con y altura. A continuación, voy a
empacar este botón. Entonces voy a atar el método de paquete de puntos B y definimos el lado t. Además, expandir es verdadero y llenar es ambos. A continuación, voy a adjuntar todo este botón con método bind. Para eso, voy a
escribir B got bind método. Después dentro de los vestidos redondos y dentro del brress
redondo primero, usamos el botón un evento Significa la patada del botón izquierdo
del ratón. Y una tercera
pulsación izquierda del ratón sobre los botones, va a llamar a esta
función método click. Tenemos que definir
la función, kick. Entonces voy a
definir la variable. Entonces después de importar el módulo. Aquí voy a
definir la función. Dave, haz clic dentro
del evento de desnudarse. Por ahora dentro de él,
voy a escribir pass, y voy
a configurar este archivo. Después de establecer este archivo, si ejecuto
este código en mi terminal, ahora, nuestra estructura
se ve así. Es una calculadora hermosa, estructura de calculadora
simple,
y esto es lo que queremos. Ahora, necesitamos manejar la función de controlador de
eventos, haga clic en. Al principio, necesitamos obtener
el valor exacto del botón. Para eso, voy a
definir un texto variable. Texto igual al evento
asistente punto Cgate dentro de la rotonda
definimos el Queremos obtener el valor del texto. Del evento particular,
supongamos que si el usuario alaba uno, entonces de este evento, vamos a extraer
el valor del asistente usando Cgate aquí vamos a
extraer el valor del texto de la etiqueta Entonces el texto de un nivel es uno. Entonces obtenemos el valor y lo
almacenamos en esta variable. Básicamente, extraemos
el valor del botón. Al mismo si
alabamos signo más, entonces va a
obtener el valor más y ponerlo en esa variable. Ahora, recuerda esa expresión de
variable, es una variable global
y es una secuencia vacía. Necesitamos usarlo
dentro de la función. Para eso, necesitamos
hacerlo global. De lo contrario,
lo de nuestra función es una variable local. Entonces aquí, voy a escribir global y nuestra
variable am es expresión. Lo hacemos variable global. Esta variable va a almacenar la expresión matemática
que el usuario está construyendo. Supongamos dos más cuatro, 2/1, algo así Ahora voy a
establecer una condición IP. Quiero decir cs un tipo
Un texto igual a igual a dentro de
los códigos dobles, si alabamos seno igual
de la calculadora, entonces dentro de esta condición IP, voy a saltar
al tri bloque TRY. Si el usuario alaba el seno igual, supongamos que el usuario escribe dos más
tres se multiplican por cuatro. Entonces usuario prese signo igual. Ahora necesitamos evaluar esta expresión, la expresión de
cadena. Para eso, necesitamos usar
un método llamado Eval, y
lo voy a almacenar en una variable, subtipo result,
result equal to, y aquí voy a usar la función
Eval, yE val. Después dentro de las direcciones redondas, voy a pasar la
expresión, esta variable. Entonces aquí pasamos la expresión
exacta que escribimos en calculadora. Supongamos que dos más tres
se multiplican por cinco, la expresión exacta,
y voy a procesar esta expresión
con el método El. Se va a calcular
la expresión, y luego después de calcular
esta expresión, quiero convertir esta
expresión en un stream. Entonces voy a usar el método de
lágrima, THTML. Entonces lo voy a poner
en una ronda de estudio ss. Después de calcular el valor, nuevamente, lo hacemos un stream. Entonces entonces en nuestro campo de entrada
en nuestra variable de entrada, voy a establecer el valor. Para eso, voy a
escribir método de set de puntos de entrada, y voy a establecer el resultado, entonces otra vez, necesitamos
almacenar de nuevo, hay
que almacenar el valor a esta expresión que
podamos recalcularla Entonces alguien escribe expresión
igual a resultado. Supongo que en nuestra
expresión pasamos,
pasamos dos más dos más cuatro, nuestro resultado se vuelve ocho. Ahora, va a imprimir los
ocho en nuestro campo de entrada. Y nuevamente, va
a pasar el ocho en nuestra expresión que podamos usar este número para
otro cálculo. Supongamos que con ocho,
quiero sumar cinco. Si tecleamos signo más y
presionamos cinco y luego otra vez, si presionamos signo igual, entonces ocho más cinco se convierten en 13. Además, tenemos que
manejar la excepción. Para eso, voy a escribir excepto excepción como E
dentro del bloque except. Si no hay problema, quiero imprimir el error, entrada punto punto set error y
nuestra excepción se vuelve vacía. Entonces quiero que
nuestra expresión expresión
vacía sea igual a negra y voy
a poner este cinco. Entonces en nuestra condición de labios, voy a poner otro caso
Un texto igual a igual a C, quiero decir claro entonces dentro de
esta condición de labio, luego quiero borrar
la expresión, expresión igual a negro. Además, voy a establecer el
valor entrywa, algún tipo de entrada. Entrada w punto set Método, Set, voy a volver a
hacerlo en blanco. Además, en nuestro sp, ahora dentro del sp, necesitamos actualizar la
visualización de entrada con nueva expresión. Además, necesitamos agregar el texto
del botón a la cadena de
expresión Para eso, voy
a escribir expresión más más igual a
grement con texto,
variable de texto aquí voy
a decir entryWaree entry,
underscoware, entryware dot set method, más más igual a
grement con texto,
variable de texto aquí voy
a decir entryWaree entry,
underscoware, entryware
dot set method,
S quiero establecer la expresión. Eso es. Ahora, ahora para todos los botones
como DST de 029 y
operadores y todos los
operadores como multiplicación
y división
más menos, se va a agregar el texto del botón
al flujo de expresión y
actualizar
la visualización de entrada
con Entonces, si configuro este archivo y ejecuto
este código en mi terminal, veamos es correcto o no. Ahora bien, si presiono siete aquí y quiero
multiplicar por nueve, entonces si presiono signo igual, como se puede ver
reginamente resultado. Ahora quiero despejar
este campo de entrada. Si presiono C, va
a borrar el campo de entrada. Ahora vamos a crear
otra expresión. Voy a plaus dos con seis. Entonces me voy a
multiplicar con cinco. Esta es una nueva expresión. Ahora intentemos expresarnos
con nuestras condiciones. Cualquiera que sea la expresión
que escribamos, va a evaluar. Se va a evaluar la expresión y
crear el resultado y va a
crear el resultado cuando se alabe seno igual. Después de presionar seno igual, ejecuta este
código de bloque dri y crea ese resultado Entonces después de crear ese resultado, va a enviar de nuevo el resultado
a esta expresión. Ahora, se ha convertido en
una nueva expresión. Si multiplico con
dos, ahora otra vez, se ha convertido en una nueva expresión
y pasar a esta y pasar a este bloque de resultado cuando
presionamos igual a
cada vez que presionamos C, va a borrar
la expresión. Se va a hacer que vuelva a
vaciar la cadena, y también va a establecer
la variable de entrada vacía. Si presiono C, va a eliminar todo de
este campo de entrada. Entonces entonces lo que sea que consigamos en nuestro trabajo de Es
actualizamos nuestro campo de entrada. Esta es la
matemática simple que necesitamos
hacer para esta calculadora básica. Espero que disfrutes. Gracias por ver
este video,
mantente atento para nuestro próximo tutorial.
50. Proyecto 3: reloj digital: Hola, chicos, me alegro
de verles de vuelta. Una vez más, estoy de vuelta
con un nuevo proyecto, y hoy en este proyecto, vamos a construir
este reloj digital con la ayuda del
módulo T y Kinar GUI Empecemos lo práctico y
veamos cómo podemos crear eso. Por último, estamos en mi editor de código de
Visual Studio, y al principio, voy a importar
Kinromduyiput A continuación, voy a
importar el módulo T porque necesitamos módulo de tiempo
para crear el reloj digital. Después de eso, voy
a escribir root igual a DK punto TLS, clase Tk Entonces voy a ponerle título
Summertyp root dot title, y nuestro título es reloj digital También, voy a establecer la geometría. Tipo Sumo, Geometría de punto raíz, 400 por 200 píxeles. Después de eso, voy a agregar color de
fondo a
estas ventanas raíz. Entonces escribe, método de
configuración de punto raíz, config, luego dentro de las rondas, fondo
BG, igual a en
los códigos dobles negros. Aquí utilizo dground de color negro. Entonces voy a
ejecutar el bucle principal, Solutt root, dark, main loop, y
voy a configurar este archivo Yo configuro este archivo, si ejecuto
este código en mi terminal, es
como se ve nuestra ventana con fondo de
color negro. Ahora, a continuación, voy a crear una etiqueta esa etiqueta va a
mostrar nuestra hora actual. Para eso, voy a definir
una variable llamada label, label igual a
etiqueta PK a label class. Después dentro de
la dirección redonda, voy a pasar, voy a poner la etiqueta en ventanas
raíz y escribir root Entonces voy a
definir fuente, fuente, y voy a asignar, y aquí voy a
asignar fuente aérea, Aerial. Después de eso, voy a
definir el tamaño de la fuente. Voy a hacer 50. Creo que 50 es bueno para ello. Entonces voy a
usar el peso de la fuente. Fuente a ocho, quiero fuente negrita. Negritas. Después de eso, después de eso, voy a agregar
cuatro redondos de color, G. G significa cuatro redondos. Cuatro colores redondos,
voy a usar el color King. C, Yan. Entonces voy a definir el color de
fondo, tipo BG negro. Entonces voy a
virar esta etiqueta. Así que escriba el método PAC de punto de etiqueta. Dentro de las rotondas aquí, voy a usar encore
property anchor, y voy a
colocarla en el centro y expandirla, expandirme, voy
a hacerla realidad Voy a establecer este archivo. A continuación, voy a
crear una función que va a
actualizar continuamente el tiempo en esa etiqueta. Para eso, voy
a definir una función, Dave y nuestro nombre de función es actualización, actualización, tiempo de
subrayado Actualizar tiempo entonces
dentro de la función, aquí, voy a definir tiempo
actual, el tiempo de
subrayado actual Necesitamos extraer
la hora actual. Para eso, tiempo actual
igual al tiempo actual igual al punto de tiempo
del módulo de tiempo, voy a llamar al método
ST RPT, TRT Después dentro de las rotondas, aquí tenemos que pasar el formato En qué formato quiero
imprimir la hora. Quiero usar formato 24 horas así atar seno modular H, luego colon. Después seno modular, por minuto, luego colon A, luego seno
modular por segundo. Voy a imprimir la
hora en ese formato. Básicamente, va a
devolver una cadena de tiempo. Después de eso, después de eso, voy a configurar
esta vez a esta etiqueta. Para eso, aquí,
voy a escribir label label dot config
Method, config. Entonces el runbss aquí, quiero configurar
la propiedad text,
text igual a la hora actual Luego después de imprimir
la hora actual, necesitamos
actualizar continuamente la hora actual. Para eso, voy a escribir label punto tras método.
Etiqueta punto después. Aquí voy a usar
mil milisegundos. Quiero decir 1 segundo, y voy a
actualizar la hora. Yo llamo a esta función tiempo de
actualización. En cada segundo, va
a actualizar continuamente la hora, y así es como podemos
crear nuestro reloj digital. Ahora, antes de configurar este archivo, necesitamos llamar a esta
función update time. Copio el
nombre de la función y voy a llamar a esta función
debajo del bucle principal. Y voy a poner este archivo. Después de configurar este archivo, si
ejecuto este código en mi terminal, aquí puedes ver
nuestro reloj digital y
actualiza continuamente la hora. Espero que ahora te quede claro cómo podemos crear
un reloj digital, es muy sencillo crear
un reloj digital como este. Gracias por ver
este video
Estén atentos para nuestro próximo proyecto.
51. Proyecto 4: convertidor de divisas: Hola, chicos. Es
bueno verte de vuelta. Una vez más, estoy de vuelta con un nuevo proyecto hoy en este proyecto, vamos a construir
este conversor de divisas. Como pueden ver, si paso
alguna cantidad como 14, entonces selecciono de la moneda. Supongamos que quiero seleccionar USD. Entonces quiero
convertir 14 USD a NR. Entonces si presiono
el botón Convertir, como pueden ver, devolverá el monto de acuerdo
a la tasa de conversión. la misma manera,
si seleccionamos Euro si convierto 14 euro a INR,
es devolver el monto. Entonces, a partir de las
monedas predefinidas, se
puede seleccionar cualquiera de ellas. Y puedes devolver el resultado. En lugar de nar, si
quieres devolver Euro de Yen Japonés a
Euro, puedes ver el resultado. Esto es lo que hoy
vamos a construir. Sin perder el tiempo,
comencemos la práctica. Por último, estamos en mi editor de código
visual studio. Al principio, voy a
importar el módulo Kiner. Aquí voy a escribir
import Kinker como TK. Con eso, quiero
importar cajas de masas y TTK. Aquí escribo de Kinkerimport, TK y caja de masa A continuación, voy a crear
la ventana Kinker. Tipo raíz igual
a la clase Tt Tk. Después de eso, voy
a asignar un título. Escribo raíz punto título conversor
de divisas. A continuación, voy a
definir la geometría, tipo
suma geometría punto raíz, 400 por 250, y voy
a ejecutar el bucle principal, Sumtyp root dot main A continuación, voy a definir un diccionario para el tipo de cambio
fijo. Antes de la ventana raíz, aquí, voy a escribir su diccionario
creado, y nuestro
nombre del diccionario es tipo de cambio. En este diccionario,
según el dólar, establecemos otros tipos de cambio. Establecemos otra tasa de cambio, como nuestra primera clave es USD y nuestro primer
valor es 1.0 dólar. Según el valor del USD, si lo cambiamos por euro, podemos obtener 0.92 euros la misma manera, si
lo convertimos en INR significa rupia, entonces podemos obtener 87.10 rupias la misma manera
para la libra esterlina, obtenemos 0.78 libras
para el yen japonés, podemos obtener 146 Para este ejemplo, no
voy a usar ninguna API para obtener el
valor actual del tipo de cambio. Yo uso los tipos de cambio fijos. Ahora a definir la geometría, voy a crear una
etiqueta pk dot label, y colocamos esta
etiqueta en la ventana raíz y nuestro texto de etiqueta es cantidad, y nuestro color de fuente es área
y empaco esta etiqueta. A continuación, voy a tomar un campo de entrada ,
campo de entrada de cantidad, mocos, cantidad bajo entrada
igual a entrada pkt En este campo de entrada,
vamos a poner la cantidad, y colocamos este campo de
entrada en la ventana raíz y nuestro tamaño de
fuente es de 12 píxeles. Entonces voy a empacar
este campo de entrada. Escribo cantidad entrada
punto PAC Mathod. Después de eso, necesitamos crear un cuadro combinado para
seleccionar la moneda. Quiero decir que tenemos que
seleccionar nuestra primera moneda. Supongamos que si quiere
convertir USD a INR, primero, debe
seleccionar el dólar USD. Después primero, es
necesario seleccionar el USD. Para eso, de esta lista, de este diccionario, necesitamos
seleccionar la clave particular. Primero voy a
crear una etiqueta para ese boleto Etiqueta y nuestro texto de
etiqueta es de moneda, y etiqueta esta etiqueta. Después de eso, necesitamos
crear un cuadro combinado. Voy a definir una
variable a partir de Undersco combo. De guión bajo
combo igual a TK, aquí utilizo módulo TK, cuadro combinado
TTLASST Entonces dentro de la cita, la
voy a colocar en una raíz de ventana raíz y ahora para los valores aquí vamos a
usar este diccionario. Básicamente aquí,
necesitamos mostrar todas las claves de los
valores como USD, EUR, INR, GBP y JPY. Para eso, voy a escribir
su tipo tipo tipo de cambio, cambio, tipo de cambio, método
Keys, éste. método Change rate dot
keys
te da todas las claves
del diccionario. Y como saben, un diccionario no devuelve una lista normal. Devuelvo un objeto de clave directa, pero necesitamos una lista normal. Tenemos que convertirlo
en una lista normal. Para eso, voy
a usar el método list, LIST, list, y
voy a
moverlo dentro de las llaves redondas.
Déjame mostrarte cómo. Voy a pasar
coma. Ahora, va a devolver los elementos
exactos de la lista. Ahora es trabajo como lista. A continuación, voy a definir
la fuente de este list box. Escribo después de la fuente de coma igual a la aérea y tamaños de fuente a píxel Después de eso, voy a
empacar este tipo de caja de coma de combo dot PAC Mathod.
Voy a establecer este archivo. Por ahora, si ejecuto este
código en mi terminal, ahora se puede ver, primero, tenemos una cantidad de etiqueta,
después tenemos un feed de entrada. Aquí vamos
a poner la cantidad. Entonces tenemos que seleccionar
la moneda de. Puedes ver un
cuadro combinado y si lo abro y
lo puedes ver
en nuestro desplegable, tenemos USD, Euro,
INR, Libra británica
y Yen japonés Desde aquí, podemos
seleccionar nuestra moneda. De la misma manera, necesitamos
crear otro cuadro combinado. Por ahora, voy a matar la terminal y voy
a seleccionar esta sección y duplicar esa
sección y voy a sustituir el texto de la etiqueta. Voy a llegar a moneda y también voy a
hacerlo a combo a combo, y no necesitamos
cambiar nada más. A continuación, voy a
definir una función y nuestro nombre de función es
convertir moneda. Aquí voy a escribir
el nombre de la función, Dave y nuestro
nombre de función es convertir moneda. Dentro de este y dentro de este, voy a escribir pass, y
voy a configurar este archivo. Ahora voy a
definir un botón,
botón que va a activar la función convertir moneda. Entonces aquí, voy a definir un botón botón de punto TKClass
y presiono este botón en una ventana raíz y
nuestro botón de texto es Convertir Coman este
método, convertir moneda Y nuestro texto de botón es
Aéreo y el tamaño es 12, le puse un color de fondo a este botón que
es azul claro y luego empaco este botón y
quiero sub este archivo. Después de eso, voy a crear una etiqueta que va
a imprimir el resultado. Para eso, Hemot etiqueta de
resultado igual a etiqueta
TK y lo colocamos en una ventana raíz y por ahora
nuestro texto de etiqueta está en blanco Nosotros no ponemos nada, entonces voy a empacar esta etiqueta. Así que aquí, voy a escribir result label got PAC method, y voy a establecer este archivo. Entonces cada vez que presionamos el botón, entonces entonces llamas esta función convertir
moneda y
va a convertir la moneda e imprime el
valor en esa etiqueta. Básicamente, en esa función, vamos a configurar esta
etiqueta para imprimir el valor. Así que vamos a saltar a la función de
convertir moneda. Pero antes,
te voy a mostrar cómo se ve nuestra interfaz. Entonces, si subrayo
en mi terminal, así es como se ve nuestra
interfaz Primero, tenemos que
pasar el monto luego tenemos que
seleccionar la moneda. Supongamos que si selecciono euro y
quiero convertir
el euro en INR. Entonces después de pasar la moneda, supongamos dos, tres, cuatro,
si presiono convertir, va a mostrar el valor, el resultado en esa
etiqueta por ahora, nuestra etiqueta está en blanco. Cuando presiono el botón de convertir, va a imprimir la renuncia Volvamos a la función. Convertir moneda. Ahora, al
principio dentro de la función, voy a quitar pase
y después voy a usar Tribloc TRY tran Luego dentro del
tribloque al principio, necesitamos obtener el valor del campo de entrada,
el campo de entrada Entonces voy a definir una variable y nuestra
variable es amount,
amount equal to amount
entry dot gate method. Usando el método de puerta de puntos, obtenemos la entrada de cantidad. Supongamos que si pasamos algo, supongamos 2.35, en ese caso, nuestra entrada de cantidad
sería una variable flotante Para resolver el problema, aquí utilizamos el método float. Ahora lo va a convertir
en un peso flotante. Entonces, para obtener el monto
del campo de entrada, necesitamos extraer el de
moneda del cuadro combinado. Moneda Heraldinsco igual a
del método de puerta de punto underscoombo Sea cual sea el valor que seleccionemos
del cuadro combinado, obtenemos el valor y lo
guardamos en esa
variable desde la moneda. De la misma manera, necesitamos
extraer dos divisas. Así que voy a
escribir dos divisas igual a dos subrayado
combo método de puerta de punto Después de obtener el de la
moneda, de la misma manera, necesitamos obtener el
cuando extraemos las dos divisas
del cuadro combinado de dos. Ahora bien, si existen la moneda from
y dos monedas, entonces escribo E de moneda
y dos divisas, entonces dentro de esta condición IP, necesitamos convertir la cantidad. Al principio, necesitamos convertir
esta moneda a USD. Si ambas
monedas existen, entonces quiero
convertirla en monto en USD. Entonces, para escribir USD
underscore monto. Cantidad en dólares igual a
voy a dividir cantidad. Voy a dividir
cantidad dividida por duro, voy a pasar
el tipo de cambio, tipos de
cambio, y
dentro del cuadrado versus, voy a pasar de
moneda de moneda. A continuación, necesitamos convertir la moneda USD en moneda de
destino. Para eso, voy a definir otra
variable convertirla. Conviértelo igual
al monto de USD USD, multiplique por las tasas existentes dentro de la ronda versus solo para pasar el valor de dos divisas. Después de eso, necesitamos imprimir el valor
convertido en la etiqueta. Para eso, necesitamos
configurar la etiqueta. Aquí voy a escribir result
label dot configure config. Después dentro de los
vestidos redondos y quiero configurar la opción de texto. Texto, texto igual a, voy a usar astring, luego dentro de los códigos dobles
y dentro de los vestidos de Cali, primero, voy a
imprimir el monto y el de moneda Igual a, entonces voy a
imprimir el valor convertido. Entonces voy a imprimir
la cantidad convertida. Dentro de la Carlss
voy a escribir,
convertirla, convertida variable, pero hay un problema Si se convierte devolverá un número dechim
como 83.1 0555, entonces no quiero imprimir esta cantidad de número Quiero imprimir solo dos dígitos tras punto tras punto decimal. Para eso, necesitamos convertir este valor de
coma flotante. Para eso, para eso, necesitamos trabajar en este valor de
coma flotante. Vamos a usar especificador de
formato. Aquí, después de convertirlo,
voy a escribir colon.2a, punto dos representan
dos jugadas de Dhimil y A muestran el número de
punto fijo Después de eso, quiero
imprimir dentro de la Calibra
dice dos divisas, dos bajo moneda scoe, y voy a establecer este archivo Después de eso, necesitamos manejar las partes s dentro del s doc, quiero mostrar un mensaje de error si no funciona perfectamente. Para eso, voy
a escribir líos box dot show error y
es error Window Por favor, seleccione monedas. Si no selecciona ninguna de las monedas
como dos divisas, lo contrario forman moneda, se va a lanzar
este mensaje de error. También en nuestro bloque except,
necesitamos manejar el error. Déjame mostrarte
excepto error de valor. Entonces dentro de este bloque excepto, quiero mostrar mensaje de error. Aquí, su tipo, cuadro de
mensaje punto mostrar mensaje de
error y
nuestro mensaje de error es introducir una cantidad válida. Si no ingresamos
una cantidad válida, si pasamos algún
carácter como ABCD, arrojará un error Ahora ya casi terminamos. Vamos a configurar el archivo y ejecutar
este código en nuestra terminal. Entonces después de configurar el archivo, voy a ejecutar este código en mi terminal, y como pueden ver, y esta es nuestra aplicación de moneda
convertida. Primero, voy a
ingresar monto 12, y quiero
convertirlo en USD dos INR. Si presiono
el botón Convertir, como puede ver, está escrito el valor, de
acuerdo a la tasa de cambio. la misma manera, si
quieres
convertirlo en libra esterlina, entonces presiona convertir,
puedes ver el valor. Ahora, en vez de pasar 12, si pasamos una, ¿entonces qué? Entonces si presiono el botón convertir, va a arrojar un error. Ingresa cantidad válida
porque no es una cantidad válida. Ahora bien, si paso 13 y
convierto esta cantidad a Iona a libra esterlina, se
puede ver el resultado Nuestro conversor de divisas
funciona muy bien. Espero que ahora te quede claro. Gracias por ver este video, estén
atentos para nuestro próximo estudio.
52. Proyecto 5: convertidor de unidades: Hola, chicos, me alegro
de verles de vuelta. Una vez más, estoy de vuelta
con un nuevo proyecto, y hoy en este proyecto, vamos a crear
una GUI de convertidor de unidades. Como puedes ver en mi pantalla, creamos este convertidor de
unidad convertidora, y aquí tenemos
múltiples opciones. Primero, tenemos que
seleccionar la categoría. Quiero decir si
abro este desplegable, ahora se puede ver que tenemos que correr dos categoría longitud
y temperatura. Si seleccionamos longitud, entonces en nuestro
cuadro combinado firme, por defecto, selecciona metro, y
en nuestro cuadro combinado dos, por defecto, es kilómetro
selecto. Si pasamos algún valor, va a convertir
meta dos kilómetros. Yo paso 2000 metro, luego presiono en convertir. Ahora se puede ver que va a mostrar el resultado en esa
porción, en esa etiqueta. Si presiono el botón convertir, como pueden ver, 2000 metros
iguales a dos kilómetros. la misma manera, si conviertes 2000 ing a kilómetro
y presionas convertir, ahora puedes ver 2000 pulgadas Si convierto 2000
pulgadas a kilómetro, es pre 0.05 kilómetro. Si convierte 2000
pulgadas a 2000 pies y luego y luego
presiona este botón, puede ver los
diferentes resultados. 2000 pulgadas igual a
166 moneda 67 pies. Puede convertir de
cualquier unidad a cualquier unidad. Pero si seleccionamos la categoría dos, supongamos que si descargo esta
página y selecciono la temperatura, ahora puedes ver
en nuestro cuadro combinado, tenemos diferentes
resultados como Celsius, Fahrenit y Ahora tenemos unidades
de temperatura. Si convierto 100 grados Celsius a 100 grados Fahrenheit, puedes ver 100 grados Celsius iguales a 212.00 Si lo hago Kelvin y
presiono el botón de conversión, se
puede ver 100 grados
Celsius igual a 100 Kelvin Esto es lo que vamos a
construir hoy en este proyecto y entender cómo nuestras lógicas
están trabajando detrás en él Sin perder el tiempo,
comencemos la práctica.
53. Crea la estructura y configura la lógica para mostrar las unidades en la combobox: Como pueden ver, estamos en
mi editor de código de salt studio. Al principio, necesitamos importar el módulo, los módulos
necesarios. Primero, voy a
importar el módulo Kinter. Entonces, para escribir, ingrese Kinter como TK. Después de eso, voy
a importar caja de masas. Como voy a importar TK. Así que para escribir de Kinteriput
TK y caja de masas. Entonces entonces voy
a montar el GY. Para eso, voy a
crear una ventana raíz, root igual a t punto T class. Después de eso, voy
a asignar un título. Aquí voy a escribir root
dot title Conversor de unidades. Y luego voy a establecer la geometría, geometría de punto raíz, 400 píxeles por 250
píxeles y por fin, voy a ejecutar un mainloop Escribo root dot mainloop. Dentro de nuestra
aplicación GUI al principio, necesitamos crear una selección de
categoría. Para eso, vamos
a usar Comvo box. Pero antes voy a
definir un nivel para eso. Entonces escribo Tt, tt dot Label, colocamos en una ventana raíz y nuestro texto de etiqueta es
seleccionar categoría. Empaque esta etiqueta. Después de eso ,
aquí, voy a crear un cuadro
combinado, combo de categoría. Para crear el cuadro combinado, voy a definir un combo de categoría
variable. Combo de categoría igual
a ttk punto combobox. Colocamos este cuadro combinado
en una ventana raíz y nuestro valor de combobox es
longitud y temperatura, y aquí asignamos
estado de solo lectura No podemos escribir nada
sin estos dos valores. Entonces voy a empacar este cuadro combinado tipo categoría
punto combo punto PAC Mathod Ahora después de empacar este cuadro combinado, voy a configurar este archivo y ejecutar este código en mi terminal. Después de ejecutar este código, aquí
puedes ver nuestro nivel, y este es nuestro cuadro combinado. Ahora, si hago clic en
este desplegable, se puede ver el valor total de dos,
longitud y temperatura. Se puede seleccionar la categoría. Si seleccionamos longitud, entonces en nuestras unidades, mostró diferentes unidades
como centímetro, metro, kilómetro, etcétera Si seleccionamos temperatura, entonces en nuestra sección de unidades, va a mostrar Kelvin,
Fahrenheit Para ejecutarlo en nuestro cuadro combinado, necesitamos asignar una función
con la ayuda de bind. Con la ayuda de bind, cada vez que seleccionamos
alguno de los valores, quiero decir cualquier valor
combobox seleccionado, entonces quiero
activar una función Para eso, aquí,
voy a escribir combo categoría combo
punto bind método. Dentro del doble
curso, aquí
utilizamos este evento, combo seleccionado. Siempre que seleccionemos algún
elemento de este cuadro combinado, entonces va a activar
esta función actualizar unidades, y voy a definir
la función ahora mismo. Aquí voy a
definir la función y nuestro nombre de función es
Dave actualizar unidades. Por ahora en esta función, voy a escribir pass. Es función basada en eventos, así que voy a pasar evento
aquí en nuestro parámetro. Voy a establecer este
archivo. Después de eso, voy a crear la selección
de desde a unidad. Tecleo un solo
comando de fin a selección de
unidad y aquí, voy a crear un
marco para las unidades. Entonces para escribir, escribir, unidades de
marco iguales a
TTGTFrame y colocamos el marco dentro de la ventana raíz también voy a
empacar este marco,
unidad de marco paquete de puntos Mtod Después de eso, después de eso, dentro de la unidad de marco, voy a definir un total de
dos cuadro combinado con etiqueta. Aquí voy a mostrar las unidades de unidad y a unidad.
Déjame mostrarte. Entonces primero voy a
crear una etiqueta, tipo S, etiqueta Ttgt, y
voy a colocar la etiqueta dentro de la
unidad de marco y nuestros textos de etiqueta de Luego, usando el método de cuadrícula, empacamos esta etiqueta. Colocamos esta etiqueta en el número de
fila cero y el número de
columna cero. Después de eso, voy
a crear un combobox. Voy a escribir de unidad combo igual a
ttk punto combo box, y colocamos este cuadro combinado
dentro de la unidad de marco en este marco y aquí no
le pasamos ningún valor
a esto de unidad, dijimos el estado leído solo
porque vamos a pasar los valores de nuestra
función, actualizar la función de unidad De acuerdo a la selección
como de otra manera la temperatura, vamos a pasar el valor. Entonces voy a colocar
esto de unidad combo. Para eso, voy a conducir desde el método de lectura de
punto combinado de unidad y lo colocamos en el número de
fila cero y la columna número uno. Y
voy a poner este archivo. Después de configurar este archivo, si
ejecuto mi código en mi terminal, así es como se ve. Ahora, al lado de P
de la misma manera, voy a crear
otro combobox y etiqueta para dos unidades Aquí, primero, voy
a crear la etiqueta, etiqueta punto
ttk, y esta vez, voy a escribir etiqueta dos
y colocar la etiqueta en la fila número cero y la
columna número dos Después de eso, voy a
crear el cuadro combinado. Para el cuadro combinado, nuestro
nombre de variable es combo de dos unidades, igual a t punto combobox
aquí voy a colocar este cuadro combinado dentro del
marco y las estadísticas de solo lectura Después de eso, debe colocar este cuadro combinado
usando el método de calificación. Aquí, voy a empatar dos
unidades undersco combo punto GED, lo
colocamos en el número cero
y la columna número tres, y además agregamos algo de
relleno en Xxs Después de establecer este archivo, si
codifico en mi terminal, así es como se veía. Ahora por debajo de estos dos combobox, aquí voy a
tomar campo de entrada para el vdu que ingresa por el usuario.
Hagámoslo. Para matar esa ventana y aquí voy a
definir un campo de entrada. Para crear primero el campo de entrada, voy a definir
una etiqueta de punto Tt y colocamos la etiqueta en una ventana raíz y
nuestro valor de nivel es EnterValueO nivel
toma este Entonces etiqueta esta etiqueta. Ahora voy a crear
el campo de entrada. Para eso, voy a
atar valor de entrada igual a tt entrada de punto y colocamos
la entrada en una ventana raíz. Después de eso, voy a
pag este campo de entrada, algún tipo de entrada de valor
punto método PAC. A continuación, necesitamos crear un
botón que vaya a comandar una función y esa función
vaya a convertir nuestras unidades. Para eso, aquí, voy
a definir un botón, y nuestro nombre de botón
es convertir botón. Convertir botón igual
a la clase de botón Tttgtd, y lo colocamos en
una raíz en y nuestro botón toma este convertir y comandar esa función,
convertir, luego
empaco este Como puedes ver,
no definimos nuestra función, así que voy a
definir esa función, así que copio el nombre de la función, y aquí voy a
definir la función. Voy a escribir DF y
nuestro nombre de función es convertir dentro de esa función y dentro de esa
función por ahora, voy a escribir pass. Ahora, cada vez que
presiono el botón, va a llamar a la función de
conversión y convertir la función va
a convertir nuestras unidades. Ahora necesitamos
mostrar el resultado. Para eso,
vamos a usar una etiqueta. Aquí escribo
etiqueta de resultado igual a etiqueta T, y colocamos esta etiqueta
en una ventana raíz y nuestro resultado de texto aparecerá aquí y nuestra fuente es Aerial
12 pixel y negrita Fon Después empaco esta etiqueta. Entonces cada vez que devuelva el resultado, va a configurar
la etiqueta de resultado y va a reemplazar el texto del
resultado con el resultado. Ahora, vamos a trabajar en
Actualizar método de unidad. Entonces voy a saltar en
esa sección de actualización de la unidad. Dentro de ese método de actualización de unidades, al principio, necesitamos
extraer la categoría. Necesitamos extraer
la categoría
del cuadro combinado entre
longitud y temperatura. Así que estoy tipo categoría igual a la categoría
combo punto método de puerta. Entonces de este cuadro combinado,
obtenemos la categoría. Podría ser largo, de
lo contrario temperatura. Entonces dentro de él, voy
a establecer una condición IP. Si categoría igual
a igual a longitud, entonces dentro de esta categoría, voy a establecer las unidades, y voy a crear
una lista de unidades. Yo defino una variable
unidades y es una lista y dentro de la lista, tenemos metros kilómetros,
centímetro, inch fit, y mil en condición ellip algún tipo categoría ZIP igual
a igual a temperatura, luego dentro de la condición ellip, aquí voy a decir, aquí
voy a poner las unidades Entonces nuestra lista de unidades se convierten en
Celsius Farenita y Kelvin. Como. En nuestra parte s, Como dentro del bloque s, voy a pasar
la lista de unidades vacías. Unidades iguales a lista vacía. A continuación, necesitamos establecer las unidades, estas unidades a la caja combo, como de unidad combo
y dos unidades comp. Voy a escribir
después del bloque fuera de la condición s
del combo de unidades, quiero establecer los
valores iguales a unidades. la misma manera para el combo de dos
unidades, combo de dos unidades, voy a insertar
el cli dentro los valores cuadrados iguales a, voy a establecer las unidades Entonces voy a configurar este archivo. Después de establecer este archivo,
si ejecuto este código en mi terminal, ahora, puedes ver si selecciono la
categoría como longitud, entonces en nuestra unidad from, ahora tenemos un desplegable. Tenemos desplegable de
unidades de longitud como metro, kilómetro, centímetro,
pulgada, pies mil, etcétera De una manera a la misma manera, si abres dos combo box, ahora puedes ver ahora puedes ver todas las unidades de la longitud. la misma manera, si
seleccionamos temperatura, ahora puedes ver que
tenemos
unidades de temperatura en nuestro cuadro combinado. Pero cuando selecciono mi
categoría, como pueden ver, nuestros
campos from y dos combobox están vacíos, pero no los quiero Quiero seleccionar
el valor predeterminado. Entonces para eso para las cuatro
unidades aquí para la de unidad, aquí, voy a morir de unidad de unidad undersce actual, voy a seleccionar
el índice cero la misma manera para las dos
unidades para el combo de dos unidades, voy a seleccionar
el índice número uno. Ahora para configurar este archivo
si
vuelvo a ejecutar este código y si selecciono algún valor, cualquier categoría como longitud, ahora puedes ver por
defecto es seleccionar metro porque metro está
en mi índice cero, y en nuestro cuadro combinado de dos, es seleccionar kilómetro porque kilómetro está en nuestro primer índice, y sabes que nuestro
índice de lista empieza desde cero. Por eso selecciona
estas dos unidades, y funcionará para las mismas
si seleccionamos temperatura. Ahora seleccionas
Celsius en nuestra
unidad from y en nuestros dos combobox, selecciona
fahrenheit Esta es la primera parte
de este tutorial. En la siguiente parte
de este tutorial, vamos a trabajar
en convertir la función. Además, es necesario crear otras
dos funciones para convertir la temperatura
y convertir la longitud. Gracias por ver
este video,
mantente atento para la siguiente parte
de este tutorial.
54. Trabajar en el método de conversión: Entonces esta es la segunda
parte de este tutorial, y en esa sección, vamos a trabajar
en la lógica de conversión. Quiero decir, vamos a trabajar en esta
función, convertir. Al principio, voy a
eliminar la palabra clave pass, y voy a
usar Tri Block, inténtalo. Entonces voy a teclear
exit excepto bloque. En nuestro bloque de salida, voy a escribir value
error value error, y voy a mostrar un mensaje. Quiero mostrar un mensaje de
advertencia. Aquí voy a escribir cuadro de mensaje punto Mostrar error
Método de entrada inválida. Por favor, introduzca un valor numérico. Ahora, al principio, dentro
del tri bloque, voy a conseguir el valor. Quiero decir cualquier
valor que pase el usuario en ese campo de entrada,
este campo de entrada. Entonces necesitamos extraer el valor de la variable
enrfield Así que aquí estoy escriba
un valor variable, valor igual al
punto de entrada método Gate. Usando eso podemos
obtener el valor de la variable y
lo convertimos en un número flotante. De la misma manera, voy
a extraer la categoría. A partir de esta variable, combo de
categoría. Para eso, voy a
definir otra variable, categoría igual a categoría underscoe combo dot gate método A continuación, necesitamos
extraer el de la unidad y también
extraer las dos unidades. Aquí voy a escribir la
variable name from unit, igual a from unit underscoe
combo dot gate method Entonces voy a
extraer dos unidades de valor. Del combo de dos unidades, voy a extraer el valor y decir bit a esta variable. A continuación, voy a establecer condición
I dentro este triblog I categoría
igual a igual a longitud, si la categoría es longitud, entonces quiero llamar a una función En nuestra variable resultado, resultado resultado igual a aquí, quiero llamar a una función, y nuestro nombre de función
es convertir longitud. Voy a escribir convertir longitud y dentro del latón redondo, luego dentro del latón redondo, como argumento,
voy a tomar valor, el valor exacto, entonces
voy a tomar el de unidad y voy
a tomar dos unidad a unidad. Y también necesitamos
definir esa función. Así que voy a copiar el nombre de la función convertir
longitud y después de eso, después del bloque except, Hemotye dio nuestra función nombre convertir
longitud como parámetro, voy a pasar valor
luego de unidad y a unidad Entonces dentro de esta
función por ahora, voy a escribir pass. Voy a crear
esta función más adelante. Ahora voy a
escribir categoría I, igual a igual a
dentro de los códigos Dogon, voy a escribir temperatura, luego dentro de la condición Lip Entonces voy a llamar a
otra función, que es convertir temperatura. Estoy tipo resultado igual
a convertir temperatura, y aquí voy a
pasar los mismos parámetros. A continuación, necesitamos
definir esa función, así que voy a
copiar el
nombre de la función aquí voy a escribir. Después de eso, Dave, nuestro nombre de función es
convertir temperatura, y como argumento,
voy a tomar valor de unidad y a unidad. Copio esa sección y la
voy a pegar aquí. Por ahora dentro de esta función,
voy a escribir pass. Voy a crearlo más tarde. Y voy a poner este archivo. Entonces en nuestro S doc tipo
s en cambio el S doc, quiero mostrar mensaje de error. Quiero imprimir Quiero
mostrar un mensaje de error. Escriba mensaje cuadro punto Mostrar error
y el nombre de nuestra ventana es error, por favor seleccione una categoría válida. Si no seleccionas
una categoría válida, entonces va a
devolver el error. Con eso, quiero regresar. Regresar Quiero regresar aquí
quiero devolver el resultado. Quiero imprimir el resultado en nuestra etiqueta de resultados
en esa variable. Necesitamos configurar esta variable de etiqueta de
resultado. Aquí voy a escribir
result label dot Config, y voy a
configurar el texto. Yo uso Estring y primero, voy a pasar el valor Entonces de unidad e
igual a resultado, aquí uso colon.2f, quiero decir, es media un punto de plato, quiero imprimir solo dos Quiero imprimir sólo dos dígitos. Por eso lo uso. Primero, va
a imprimir el valor. Si pasamos dos, entonces
va a imprimir dos. Entonces va a
imprimir el de unidad. Si pasamos dos y
seleccionamos kilómetro, entonces va a
imprimir dos kilómetros. Ahora, vamos a saltar a la función
convert length. Así que pase remoto y aquí
voy a teclear. Él básicamente aquí para crear diccionario y nuestro nombre de
diccionario es unidades UNIDADES iguales a, voy a hacer pequeñas unidades de
caracteres iguales a aquí, voy a imprimir un diccionario. En cambio el Cali res
ya me sugiere los valores. Voy a imprimir los valores
metro 110, kilómetro 1,000, centímetro 0.0 1 "
0.0 254 pies y mil. Ahora, vamos a tratar de
entender las unidades, lo que he hecho aquí, nuestra
primera clave representan metro. Aquí, 1 metro igual a 1 metro, luego 1 kilómetro
igual a 1,000 metro. A continuación, 1 centímetro
igual a 0.0 1 metro. A continuación, una inchy igual
a 0.025 metros. A continuación, tenemos 1 pie, 1 pie igual a 0.3 048 metro Entonces tenemos milla 1 milla
igual a 1609 0.34 metro. Básicamente, convertimos cada
unidad en metros de peso. Utiliza medidor como unidad de
referencia universal. A continuación, necesitamos convertir la entrada
del usuario en un medidor. Para eso, voy
a definir una variable. Entonces aquí voy a escribir
valor en metros igual a, voy a pasar
el valor de usuario aquí, luego voy a multiplicar con unidades unidades punto de Unidad. Cualquiera que sea la unidad que utilice
selec de combobox, pasamos aquí desde
el diccionario de unidades,
accedemos a la unidad accedemos a la Supongamos usar seleccionar centímetro. Entonces va a
multiplicar el valor, supongamos que el usuario pasa siete aquí. Entonces se va a multiplicar
siete con un valor de 0.01. Básicamente convertimos
el valor en metro. Después de eso, necesitamos convertir el valor del medidor
en unidad objetivo, sea cual sea el valor que los usuarios seleccionen. En nuestro cuadro combinado de dos. Para eso, voy
a devolver valor en metros divididos por unidades, y quiero acceder a dos unidades. En nuestro cuadro combinado de dos, si los usuarios seleccionan millas, entonces va a dividir el valor del medidor por
el valor de la milla, y va a
devolver el resultado. Entonces, para configurar este archivo
y vamos a comprobarlo. ¿Funcionan correctamente o no? Alguien que presione el botón Ejecutar. Y primero, voy a seleccionar la categoría que es tarde
después de seleccionar la categoría, vamos a
saltar a este bloque, esta condición p, y
va a activar esta
función, convertir longitud. Y en nuestra función de longitud, aquí convertimos la
lente en metro, luego devolvemos el resultado
original. Entonces voy a pasar el valor ingresado valor
y voy a pasar 12 metros y quiero
convertirlo en mil. De lo contrario, por ahora, voy a convertirlo en kilómetro. Si presiono Convertir, como
puede ver, muestra el resultado. Si conviertes 12
metros en kilómetro, entonces va a
regresar 0.0 1 kilómetro. Pero si seleccionamos
12 kilómetros y lo
voy a convertir
en amargo, en ese caso, va a devolver 12
mil metros, 12 kilómetros igual
a mil metros, nuestro
método de convertir longitud funciona perfectamente Ahora vamos a trabajar en la temperatura. Voy a matar esta terminal y voy a
quitar pase aquí, voy a escribir condición IP. Si de unidad igual
a igual a C, si seleccionamos Celsius, entonces dentro de esta condición IP, voy a usar
otra condición IP. Si seleccionamos Celsius, entonces dentro de esta condición P, voy a usar si dos unidades
iguales a igual a fahrenheit, entonces quiero
volver aquí voy a calcular Celsius a Voy a escribir valor, y voy a multiplicar
el valor por 99/5, y voy a
sumar 32 hasta ocho Seno de adición 32. Aquí convertimos el valor
Celsius a Fahrenheit. Entonces en nuestra condición ZIP, si LC si dos unidades, igual a igual a, selecciono Kelvin K, luego dentro de la condición Lip, voy a regresar, y aquí voy a pasar
valor y voy a agregar valor con 273.15 No es, es LCs L dos
unidades iguales a igual a K, entonces quiero
convertirlo en Kelvin Aquí convierto el valor
Celsius a Kelvin y tenemos que hacer lo mismo
por Fahrenheit Voy a fosforar
este proceso y hemotipo de unidad a unidad, igual a igual a si
quiero decir fahrenheit, luego dentro del bloque p, voy a usar Si P dos unidades iguales
a igual a Celsius C,
C, el interior de la condición ip entonces dentro de la condición IP, voy a devolver
los valores de Fahrenheit. Voy a t devolver valor
-32, multiplicar con 5/9. Va a convertir el valor de
Fahrenheit en Celsius. Entonces L dos unidad igual
a igual a Kelvin, si los usuarios seleccionan Kelvin, luego encendido para convertirlo
Fahrenheit a A t valor de retorno -32, multiplique con 5/9 más Aquí convertimos el valor
fahrenit al kelvin con
la
ayuda Va a devolver
el valor kelvin
después de pasar el valor fahrenit Ahora, tenemos que hacer
lo mismo para Kelvin a t s de unidad
igual a igual a K, Kelvin, luego dentro
del bloque LC, aquí voy a seleccionar
otra condición Si dos unidades iguales a
igual a Celsius, entonces dentro de la condición, entonces necesita convertir el valor
Kelvin en Celsius Para eso, voy a atar retorno valor de retorno -273.15, L LC seleccionan el
Fahrenheit en unidad En ese caso, quiero regresar. Quiero devolver el valor
fahrenheit. Necesitamos convertir el
valor Kelvin en fahrenheit. Aquí convertimos
fahrenheit vía Celsius. Por eso utilizo esta fórmula. Sé que en tu clase de ciencias, ya
haces eso de matemáticas. Entonces no voy a
explicar cómo es el trabajo. Entonces tenemos que devolver retorno, tenemos que devolver el valor,
y quiero establecer el archivo. Después de configurar el archivo,
si ejecuto este código en mi terminal y
selecciono la categoría, esta vez voy
a establecer la temperatura y voy a convertir a Celsius
a Fahrenheit Aquí voy a pasar
100 grados centígrados. Y si lo convierto en
Fahrenheit, como pueden ver, 100 grados Celsius igual
a 212 grados Si lo hago Cavi en, ahora se puede ver 100 grados
centígrados iguales a 100 kelvin Pero si convierto 100
kelvin a 100 Fahrenheit, entonces pas convert,
puede ver 100 Kelvin igual a
-279.67 Fahrenheit. Así es como construimos
nuestro convertidor de unidades. Espero que disfrutes de este proceso. Gracias por ver este video, estén
atentos para nuestro próximo proyecto.
55. Iniciar sesión desde la GUI uso: Hola, chicos. Es
bueno verte de vuelta. Una vez más, estoy de vuelta con
un nuevo proyecto de Quinta GUI. Hoy en este proyecto, vamos a crear un
inicio de sesión y registro desde, y vamos
a almacenar el inicio de sesión y la contraseña en un JSON. Además, vamos a utilizar el método de hash de
contraseña
para guardar la contraseña Cualquiera no puede extraer
la contraseña fácilmente. Ahora
hablemos de su característica. Si hablo de su característica, necesitamos crear registro,
crear nuevo usuario y nombre de usuario y contraseña
almacenados en un JSON. Entonces necesitamos
crear el inicio de sesión. Aquí, necesitamos verificar la credencial con
los datos almacenados Luego viene la validación. Necesitamos
validarlo para evitar que se duplique
el nombre de usuario y los campos
en blanco, etcétera Por fin, necesitamos
mostrar los comentarios. Necesitamos mostrar mensajes de éxito o error con messagebox Ahora, hablemos de
la configuración del archivo. Primero, necesitamos
crear el archivo Python. En nuestro caso, voy
a crear app punto pi. Aquí vamos a
escribir el código GUI principal. Entonces necesitamos crear un archivo de
base de datos usuario punto código JSON va a crear este
archivo automáticamente si no existe. Comencemos la codificación y
veamos cómo podemos crearla. Como puedes ver, estamos en mi editor de código de estudio de
resultados. Al principio, voy a
importar módulo Kiner, tipo de entrada Kinter como TK Después de eso, después de eso
para mostrar los mensajes, voy a importar
messagebox de Kinter So
para escribir desde
Kinteriport para escribir desde Entonces necesitamos importar el módulo
JSON para escribir Import JSn y después de eso, voy a importar el módulo OS Ahora definamos el inter GY. Al principio, voy a
escribir un solo comando. Aquí vamos a
crear el Kint GY. Al principio, voy a
crear la ventana raíz. Voy a escribir root
igual a t punto T class. Entonces voy a asignar título aquí voy a asignar
un título a esta ventana. Voy a escribir
root dot title está en las prensas redondas
iniciar sesión y registrarse desde. Después de eso, voy a establecer
la geometría de esta ventana. Voy a escribir
geometría de raíz 300 por 250 píxeles. Entonces voy a asignar un color de fondo
a la ventana raíz. Voy a escribir root
dot config Method. Después dentro del
latón redondo, voy a usar BG, color de
fondo, BG igual dos, dentro de los códigos dobles. Voy a pasar un código de color. Aquí quiero aplicar color
grisáceo, someti Tiene etiqueta e2e2 EP
dos, Ahora, vamos a crear el bucle medio. Aquí estoy ti root, el mainloop. Entonces voy a
crear los magos. Necesitamos estos asistentes
para tomar las entradas, como nombre de usuario contraseña, y necesitamos crear dos
botones para iniciar sesión e inscribirse Aquí voy a
crear un posterior. Voy a escribir t
dot label y colocamos esta etiqueta dentro de
la ventana raíz y nuestro texto de etiqueta es nombre de usuario. Aquí dijimos el mismo color de
fondo a esta etiqueta, y empaco esta etiqueta. También, quiero
tomar un campo de entrada. Para almacenar el campo de entrada, aquí, voy a tomar una variable y nuestro nombre de variable
es nombre de usuario de entrada. Nombre de usuario de entrada igual a entrada
tikt y colocamos este campo de entrada
dentro de la ventana raíz y aquí establecemos 25 Después de eso, necesitamos
empacar este campo de entrada. Para empacar este campo de entrada, voy a escribir el usuario de entrada
variable
punto Pack Mathod la misma manera,
voy a tomar otro campo de entrada
para contraseña. Primero creo la etiqueta, luego para crear la etiqueta. Aquí voy a tomar
el campo de entrada y nuestra variable de entrada
es la contraseña de entrada, y colocamos este enrfield en una ventana raíz en vez
de mostrar personajes, quiero mostrar estas estrellas Va a convertir
al personaje en estrella. Después de eso, voy a
empacar el campo de entrada. Contraseña de entrada método dot peg. Entonces voy a
tomar dos botones. Un botón es para registrarse y
otro botón es para iniciar sesión. Al principio, voy a
crear el botón de inicio de sesión, pero antes
voy a iniciar WR Y aquí voy a
escribir botón de ticket y colocaré el botón
igual a ventana raíz, y nuestro botón texto este inicio de sesión, y va a
comandar este método, iniciar sesión y establecer con diez píxeles y color de
fondo este color
verde y para
color de fondo el color blanco. Empaque este método. Pad, y también voy a
agregar padding en Y xs, pad Y, voy a asignar diez pixeles, de
lo contrario cinco pixeles. Entonces duplico este botón. Después de duplicar
este botón, este botón es para registrarse y va a comandar
la función de registro. Repuesto login para registrarte. Después de eso, voy
a definir la función. Primero, voy a definir
la función de registro. Copio el
nombre de la función y aquí y aquí, voy a escribir Dave Nuestro nombre de función es
registrarse dentro de esta función, voy a escribir pass. Por ahora, voy a
escribir pase para evitar el. Entonces voy a duplicar esta función y
voy a ponerle nombre login. Copo el nombre de la función login, y voy a reemplazar el
registro con login. Y voy a poner este archivo. Después de configurar este archivo, si
ejecuto este código en mi terminal, veamos cómo se ve nuestra
interfaz. Después de configurar este archivo, si
ejecuto código en mi terminal, así es como se ve nuestro formulario de registro
e inicio de sesión. Primero, tenemos el
nivel de nombre de usuario, luego tenemos el
campo de entrada del nombre de usuario, luego tenemos una
etiqueta de contraseña, y tenemos
campo de entrada de contraseña,
luego botón de inicio de sesión
y botón de registro. Esta es la primera
parte de este tutorial y a la misma parte
de este tutorial, vamos a trabajar
en las funciones. Gracias por ver este video estadio para nuestro próximo tutorial.
56. Registro de sesión, parte 2: Me alegro de verlos de vuelta, chicos. Esta es la segunda
parte de este tutorial, y en esa sección, vamos a crear el JSON. Pero primero, voy a definir una variable y nuestra
variable es archivo de usuario. Archivo de usuario igual a aquí
dentro de los códigos dobles, voy a proporcionar
una ruta de archivo, ruta archivo del JSON. Dentro de los códigos dobles, voy a escribir
users dot JSON. Como puedes ver en mi directorio de trabajo
actual, no
hay JSON que necesitemos para crear ese archivo JSON
usando condición IP. Voy a escribir
un solo comando, crear archivo IP no existe. Entonces voy a
establecer condición IP. Si no, los puntos de ruta de puntos de los puntos existen. Después dentro de la rotonda
voy a pasar archivo de usuario. Si este archivo de usuario no
existe en mi directorio de
trabajo actual, entonces dentro del entonces
dentro de la condición IP, quiero abrir este tipo con abierto dentro del archivo de usuario de
roundre, archivo de
usuario y quiero
abrir este archivo en modo W. Dentro de los dioses individuales,
voy a escribir modo de escritura, W como simio puntero de archivo. Entonces dentro de esta función abierta, voy a escribir Json dot dump Mthod dump Dentro de
los rounddresses, voy a pasar el diccionario Nt, y luego nuestro puntero de archivo, F. Usando este método JSON tonto aquí escribimos un objeto
JSON vacío Voy a actuar como
base de datos de corte para almacenar
nombre de usuario y contraseña. Ahora bien, si configuro este archivo y
ejecuto este código en mi terminal, ahora se puede ver en mi trabajo
actual en directorio, se creó JSON punto JSON. Se va a crear el JSON si el archivo no existe
en mi directorio. De lo contrario, no
va a crear. A continuación, voy a trabajar
en la función de registro. Dentro de la función de registro, voy a eliminar la
palabra clave pass y primero primero, voy a tomar la entrada. Quiero decir, necesitamos
tomar entrada desde el nombre de usuario,
también la contraseña. Aquí voy a definir
total dos variables. Para el nombre de usuario, voy
a escribir nombre de usuario igual
al nombre de usuario de entrada
punto método Gate. Usando el método de puerta, podemos obtener el valor
del campo de entrada
y usando la tira de puntos y
usando el método de tira, podemos eliminar los espacios
adicionales desde el final y
de otra manera desde el inicio. De la misma manera, voy a
tomar otra contraseña. Entonces voy a definir
otra variable, contraseña igual a entrada underscoe password método
dot gate Y ahora necesitamos verificar el campo de entrada
usando condición IP. Si nuestro campo de entrada como nombre de usuario y contraseña está vacío, entonces vamos a
mostrar un mensaje de error. Para eso, voy a establecer
una condición IP, algún tipo. Si no, nombre de usuario
o no contraseña, entonces dentro de esta condición EIP, quiero mostrar este mensaje de
error Entonces voy a escribir messagebox dot herror y nuestro nombre de ventana es r.
Todos los campos son obligatorios. Con eso, quiero devolverlo. Regreso. Voy a pasar
esta palabra clave return. Flecha use return porque después de
mostrar el mensaje de error, necesitamos detener la ejecución. Por eso necesitamos
usar esta palabra clave return. A continuación, necesitamos crear
un método que vaya
a cargar los datos
del adyacenFle Para eso, voy
a definir un método. Voy a definir una función
y nuestro nombre de función es Dave cargar usuario dentro de
esta función, voy a escribir
con open with open. Dentro del método open, voy a pasar el archivo de usuario, archivo de
usuario o ruta de archivo
JSON, y voy a abrir
este archivo en modo de lectura. Dentro de los códigos dobles,
voy a escribir R como F. Luego dentro del método
open file, quiero devolver return, quiero devolver
JSON dot load Math. Cargar voy a pasar
el cinco apuntador ocho. Ahora voy a llamar a
esta función de usuario de carga dentro de la función de registro. Después de regresar aquí, voy a escribir usuarios iguales a cargar usuario. Ahora voy a establecer
otra condición I. Si el usuario nombra al usuario, entonces quiero mostrar un
mensaje de error. Déjame mostrarte. Aquí, voy a escribir
messagebox dot show error, y vamos a
mostrar este error y
voy a escribir
en nuestro cuadro de error, escribimos nombre de usuario ya Después de mostrar este mensaje de
error, quiero detener la ejecución, así que voy a pasar return. Va a mostrar este mensaje de
error si tenemos el nombre de usuario preexistente
en nuestro archivo JSON Supongamos que ya me inscribo, ya
creo mi cuenta
con el nombre de usuario de Joint. Entonces si intento
volver a inscribirme y llenar el
saname Join To, entonces va a mostrar
este mensaje de error De lo contrario, necesitamos agregar el nuevo nombre de usuario y el par de contraseñas
en el diccionario. Para eso, aquí,
fuera del bloque EP, voy a conducir a los usuarios
dentro de la base cuadrada, voy a pasar el
nombre de usuario y nombre de usuario igual a contraseña. Voy a establecer este archivo. Para establecer el nuevo
nombre de usuario en el archivo JSON, necesitamos llamar a una función, y nuestro
nombre de función es guardar usuario. Pero no definimos
la función, así que definamos la función. Aquí, después de cargar usuario, voy a definir otra función y nuestro nombre de
función es Dave guardar subrayado usuario Dentro de la
escotadura redonda, va a tomar solo un parámetro usuario. Entonces dentro de esta función, quiero abrir el
JSON en modo escritura. Escribo con archivo de usuario abierto en modo escritura como
cinco punteros ocho. Entonces voy a escribir Jasn método
tonto, Jasn punto dum, y voy a pasar
el usuario valor usuario y el archivo y
el cinco punto F, y
voy a configurar Ahora voy a usar esa
función, guardar usuario. Aquí llamo a la
función guardar usuario, guardar usuarios. Entonces voy a mostrar
el mensaje de éxito. Escribo messagebox dot show
Info y nuestro nombre de ventana es éxito y Hemo tipo cuenta Y voy a poner este archivo. Ahora, presione establecer este archivo,
enviemos el código en terminal y veamos
si funciona correctamente o no. Entonces voy a presionar
el botón Ejecutar. Y aquí, voy a
tratar de llenar un nuevo usuario. Entonces mi nombre de usuario es
Joint JAY a NTA, y voy a establecer
la contraseña 12345, contraseña
simple, y voy
a presionar el botón de registro Después de pulsar el botón de registro, como puedes ver, cuenta
creada con éxito. Muestra los éxitos,
las masas de éxito. Y si abro mi
archivo JSON user dot JSON, name Joint username es Joint
y password es 12345 Y si trato de
llenar el mismo nombre, unirme y cambiar
la contraseña uno,
dos, tres, cuatro,
e intento registrarme, ahora puedes ver
el mensaje de error
porque ya existe el nombre de usuario. Entonces nuestro código funciona muy bien. Después voy a agregar
otro usuario, agregar uno. Agrega uno y voy a
establecer la contraseña 111, y voy a
pasar el botón de registro. Se va a establecer
el nombre de usuario y la contraseña en mi archivo JSON. Aquí podrás ver el resultado. Nuestra función de registro
funciona correctamente. A continuación, tenemos que trabajar
en la función de inicio de sesión, pero no en este tutorial. Lo voy a hacer en
el siguiente tutorial. Gracias por ver este video, estén
atentos para nuestro
próximo Tutorial.
57. Inscripción, parte 3: Me alegro de verles chicos. Esta es otra parte de este tutorial y en esa sección, vamos a trabajar en el método de inicio de
sesión, esta función. Para eso, voy a eliminar la palabra clave pass
de la función de inicio de sesión y aquí necesitamos extraer los datos del campo
de entrada,
nombre de usuario y contraseña. Al principio, voy
a extraer el nombre de usuario y guardarlo en
esta variable username. A partir del nombre de usuario de entrada, obtenemos el valor, y la misma manera necesitamos
extraer la contraseña. Aquí, voy a escribir Contraseña
igual a contraseña de entrada,
entrada underscopassword método de puerta de
punto Después de obtener los datos
de la interfaz, necesitamos cargar al usuario. Para eso, herm tip carga usuario
igual al método load user. Éste. Además, es necesario
establecer una condición IP. Aquí tip aquí necesitamos establecer una condición EP para que coincida
con el nombre de usuario y la contraseña
del diccionario JSON. Hearty I nombre de usuario, usar un nombre en usuario Si nombre de usuario en usuario y usuarios
dentro de los brasses redondos, voy a usar el nombre de usuario
como si paso Join to, entonces va a hacer coincidir la clave Joint
con esta contraseña Use un nombre igual a
igual a contraseña. Entonces dentro de esta condición IP, quiero mostrar un mensaje de
éxito. Aquí, quiero mostrar las masas
de éxito
con el nombre de usuario. Voy a escribir
cajas de masas en cuatro dentro de las Corridas. Nuestro nombre de ventana es éxito, y aquí usamos Estr e imprimir Dé la bienvenida al nombre de usuario. Si Advance login,
va a imprimir advName y me uno para iniciar sesión, entonces va a
imprimir Joint name También en nuestro blog els, necesitamos manejar
el mensaje de error. Voy a escribir ls. Entonces en cambio el
Elsblog voy a escribir messagebox Nuestro indoame es error
y aquí imprimir, usuario
no válido o contraseña Voy a establecer este archivo.
Ahora para establecer este archivo. Ejecutemos el código en nuestro
terminal e intentemos iniciar sesión. Ahora, como pueden ver, en nuestro campo de nombre de usuario, voy a escribir mi nombre
Joan JAY a NTA, J en mayúscula Después de eso, voy
a pasar la contraseña. Mi contraseña es uno,
dos, tres, cuatro, cinco. Si el nombre de usuario coincide con esta contraseña y pulsa
el botón de inicio de sesión, ahora puedes ver bienvenido Únete. Muestro el mensaje de éxito. Pero si cambio el nombre de usuario, entonces elimino el último
carácter A e intento iniciar sesión, ahora puedes ver nombre de
usuario o contraseña inválidos. Muestra los líos de error. la misma manera, si escribo
el nombre de agrego uno A, Dwan y tecleo la contraseña
1111 e intento iniciar sesión, ahora puedes ver bienvenido agrega Él inicia sesión desde que funciona perfectamente. Pero necesitamos actualizar
nuestro inicio de sesión desde. Tenemos que hacerlo
un poco avanzado. Es un inicio de sesión básico simple
desde, no lo quiero. Ahora bien, si te das cuenta, si voy a saltar al usuario JSON fácilmente todos
pueden leer la contraseña. Todos pueden usar esta contraseña
e iniciar sesión en este sistema. No lo quiero.
Quiero hash de contraseña Vamos a actualizar
este sistema con
hash de contraseña usando SHA 256 La contraseña no se
almacena en texto plano. Sea lo que sea que escribamos
en el campo de contraseña, nadie puede leerlo directamente. Así que volvamos
al archivo Python. Pero antes voy a
matar el terminal y volver a la app punto
Pi archivo y aquí, voy a importar
otro módulo, y voy a importar
hashLptiImport hashlip Es un módulo incorporado de Python. Y ahora necesitamos crear
una función que vaya
a convertir esa va a
convertir la contraseña en hash. Voy a escribir
una sola
función de comando para hash password. Aquí voy a escribir
Dave hash password, y dentro de los Runbres
voy a pasar la contraseña Entonces dentro de esta función, quiero volver, regresar, y voy a escribir hash
leave, hash leap dot, y aquí voy
a usar H Jaja 256 Dentro de la Runress
voy a pasar la contraseña. Codificación de punto de contraseña, contraseña de codificación de
punto y sis redonda. Después del método de digestión tipo punto
Higgs. método de codificación de puntos de contraseña convierte la cadena de contraseña
en bytes porque hashlib funciona en bytes
y hashlib H 256, crea un objeto hash HH 56
a partir del byte de contraseña e ig digest devuelve el hash como un
flujo hexadecimal legible en lugar de bytes brutos Voy a usar esta función
hash passwords para copiar esta función la voy a
usar cuando la inscriba. Entonces cada vez que lo firme, voy a reemplazar esta
contraseña con el HashLFOD St usuarios nombre de usuario igual a
esta contraseña contraseña hash. Esta función tiene contraseña. Va a almacenar la
contraseña en formato hash. Además, voy a llamar a la misma función hash
password cada vez que inicie sesión. Aquí, después de cargar el usuario, voy a definir
una variable llamada hast hast igual a función
hash password
y pasamos la contraseña, y voy a
reemplazar password con hash variable hash Y voy a poner este archivo. Ahora después de configurar este archivo
antes de ejecutar este código, voy a saltar a la configuración de
la GUI. Quiero eliminar esta opción
porque esta vez
en nuestro campo de entrada, quiero mostrar mi contraseña
y volver a configurar el archivo. Después de configurar el archivo,
si ejecuto mi código en mi terminal y paso el nombre de usuario Ad AD WAN y
voy a establecer la contraseña A es 12 WQ y estoy
tratando de pasar el registro Después de presionar registrarse, está
escrito Json decode error. Creo que hay un problema
con la decodificación JSON, así que necesitamos arreglar ese problema. Intentemos arreglarlo. Para resolver el problema
en esa condición P, voy a usar o palabra clave, Hem para usar u operador, y voy a establecer otra condición
o punto pd punto puerta Tamaño, archivo de
usuario igual
a igual a cero. Si el archivo está completamente vacío, entonces cree ese archivo JSON. También en nuestro método de usuario de carga, necesitamos manejar
el mismo error. Aquí, necesitamos manejar
el error de archivo vacío. Para eso, voy a empatar
si Os Perth punto obtener tamaño, archivo de
usuario
igual a igual a vacío, si el archivo handle está vacío, entonces quiero volver,
devolver objeto en blanco. Devuelve un objeto en blanco.
Quiero establecer este archivo. Además, dentro de la función open, voy a usar Tribloc Prueba dentro de este tri bloque. Quiero regresar. Corté
esta porción y dentro del tribloque quiero devolver
JSON dot load Math loads Es la base redonda,
voy a pasar el puntero del archivo si entonces
en nuestro bloque except, excepto aquí, quiero imprimir el error del decodificador
JSON. Para manejar el archivo Corrupt, voy a pasar JSON dot
JSON DecoDeceError, error y dentro de él,
voy a regresar Retorno, quiero
devolver un objeto vacío, y voy a establecer el archivo. Además, voy a hacer algunos
cambios en la función guardar usuario. Aquí, voy a agregar IndiantFour Indian four,
y voy a configurar este archivo Ahora veamos si funcionó correctamente o no
después de configurar este archivo, si ejecuto este código
en mi terminal y trato de poner algo, supongamos agregar uno Agregar uno es mi nombre de usuario y en
nuestro campo de contraseña estoy tecleando QW 12 como y
trato de registrarme, como puedes ver, cuenta
creada con éxito Imprimo cuenta
creada con éxito. Yo te muestro mi JSON, déjame mostrarte mi JSON. Ahora puedes verlo
dicho nuestro anuncio de nombre de usuario. Pero en contraseña,
decía el código hash. Ahora, si intento iniciar sesión, con el mismo nombre de usuario
y la misma contraseña, si intento iniciar sesión ahora puedes
ver imprimir bienvenido agrega uno. De igual manera, si
añadimos otro nombre de usuario como nervio y contraseña sit, QWERT y 12345, esta contraseña e intentamos
registrarnos como puedes ver, cuenta crea
con éxito para RAR, guarda esta contraseña, este hashcode Si intento iniciar sesión con la
misma contraseña y nombre de usuario, ahora puedes ver pre
bienvenida Uno lo que
significa que podemos iniciar sesión en la
cuenta con éxito. Si utilizo el mismo nombre de usuario y misma contraseña para volver a registrarme, ahora puedes ver el mensaje de
advertencia. El nombre de usuario ya existe. Si cambio la contraseña, todavía va a mostrar
nombre de usuario ya existe. Entonces espero que ahora el concepto
sea claro para ti cómo podemos usar el hash de contraseña para almacenar la contraseña en formato blanco Gracias por ver este video, Estén atentos a nuestro próximo proyecto.
58. Mini aplicación de GUI tkinter de motor de búsqueda.: Hola, chicos, me alegro
de verles de vuelta. Una vez más, estoy de vuelta
con un nuevo proyecto. Y hoy en este proyecto,
vamos a crear esta mini herramienta GUI para
buscadores. Para que veas que
tenemos una barra de búsqueda. Si buscamos alguna consulta, supongamos India y
pulsamos el botón Buscar, se
puede ver que devuelve
diez resultados de la página web. Además, se imprime la descripción
proporcionada por el sitio web. Primero, imprime el
número de índice, luego el encabezado. Además, imprime la descripción. Y puedes notar que estos
enlaces son clicables. Además, puedes notar que tenemos un subrayado si
quieres leerlo más Si haces clic en esa sección, va a redirigir
a este enlace. Déjame mostrarte. Entonces,
si hago clic en él, va a redit
a este sitio web Entonces esto es lo que hoy vamos a construir en este proyecto. Y en nuestro cuadro de resultados, aquí mostramos
un total de diez resultados. Y depende de ti cuántos
resultados quieres mostrar. Entonces veamos cómo podemos
crear este proyecto. En ese proyecto,
vamos a aprender sobre el
desguace web con la
ayuda de Beautiful Entonces, cómo podemos enviar post
request a un sitio web, cómo podemos extraer los datos, cómo podemos
pritificarlos, etcétera Así que comencemos. Entonces como puedes ver, estamos
en mi editor de código de estudio, y cómo creo un archivo
Python app dot Pie. Al principio, voy a importar
los módulos importantes. Primero, voy a importar módulo
Kinter como tipo TK, entrada Kiner como Después desde el módulo Kinter, voy a importar texto
desplazado Así que aquí para escribir desde
Kiner desde Kiner, voy a importar
texto de desplazamiento porque en nuestra área de texto, necesitamos ese scroll pero
para desplazarse por la página Después de eso, voy a importar otro módulo llamado request, algún tipo import request. Utilizamos este módulo para
enviar solicitud HTTP. Después de eso, voy a
importar otro módulo. Y mi módulo lemme es una sopa
preciosa. Entonces
aquí voy a atar. De BS cuatro importar
Beautiful Soup. Usando este módulo, se
analiza el SDML. Se ayuda a extraer la descripción de los enlaces de
título
de las páginas web. Y por fin, voy a
importar módulo de navegador web, algún tipo, importar navegador web. Usando este módulo, podemos abrir enlaces en el navegador
predeterminado del usuario. Entonces voy a
definir una función, y nuestro nombre de función es tal, algún tipo, Dave search. Y por ahora dentro de
esa función, voy a escribir pass. No voy a hacer
nada aquí por ahora. Después de eso, voy a
saltar a la configuración de la GUI. Voy a crear un objeto
raíz usando TGass. Entonces escribo raíz igual a t TK. Ahora para crear el objeto raíz, voy a iniciar el bucle GUI para que eso escriba
root dot mainloop Ahora vamos a crear la
estructura GUI paso a paso. Al principio, voy
a asignar el título, y voy a establecer title root dot title Mini
buscador. Después de eso, voy
a establecer la geometría. Quiero definir
el tamaño de ventana para esa geometría de punto raíz tipo viento con 700 X 500 significa altura 500. Después de crear la geometría, voy a crear
una barra de búsqueda. Para eso, primero, voy
a tomar entrada del usuario. Entonces voy a escribir entrada igual a t punto
clase de entrada y dentro los Runss voy a colocar esta clase de entrada
dentro de la ventana raíz, y voy a decir la fuente
aérea y tamaño de fuente 14 Entonces voy a empacar
en la siguiente línea, voy a empacar esta entrada. Voy a empacar
el campo de entrada. Así que aquí estoy escriba el método de paquete de
puntos de entrada. Y en xs agrego
relleno de diez píxeles en Xxs también
agrego relleno de diez píxeles pero
lleno este campo de entrada en Xxs Por lo que va a
tomar el ancho completo de esta aplicación.
Déjame mostrarte eso. Entonces después de establecer ese archivo, si
yo este código en mi terminal, es como se ve nuestra
aplicación. Este es nuestro feed de entrada. A continuación, voy a crear un botón de búsqueda para
esta barra de búsqueda. Así que aquí voy a
escribir botón de búsqueda, botón subrayado igual a tk punto botón clase, botón Tkt Y voy a
colocar este botón dentro de la raíz de la ventana raíz. Y mi texto de botón es texto, y voy a establecer
botón de búsqueda de texto, comando, y va a
comandar esta función, buscar. Además, voy a configurar la
fuente aérea en nuestro botón de búsqueda. Para eso aquí, voy
a escribir fuente aérea. Y utilizo fuente de 12 píxeles. Entonces después de eso, voy
a empacar el botón de búsqueda. Voy a escribir botón de búsqueda, botón búsqueda
método de paquete de puntos. Eso es. Ahora tenemos la barra de búsqueda. Además, tenemos el botón de búsqueda. Entonces después de eso, voy
a crear la caja de resultados. Aquí voy a mostrar las
URL y la descripción. Para eso, voy a escribir
un solo cuadro encomInrsult,
y también necesitamos
mover esta línea por encima del cuadro de resultados porque
esta línea es para el esta línea es Aquí empacamos el botón de búsqueda. Para mostrar el resultado aquí, voy a definir un muy bien llamado cuadro de subrayado de resultado, cuadro de
resultados, cuadro de resultados, igual a Scroll text
dot, scroll text method Como puedes ver, ya
importamos este módulo aquí, scroll text from Kinter
Import, Scrollix Entonces dentro de la ronda
*** voy a colocar esta caja de resultados en
nuestra ventana raíz. Además, uso rap igual a t rep, y uso el tamaño de fuente 11, y nuestra familia de fuentes es aérea. Después de eso, voy a
empacar esta caja de resultados. Para ese tipo de
cuadro de resultado método de paquete de puntos, y en su lugar el desvestirse en
XXS utilizo relleno de diez píxeles En YXS también utilizo relleno de
diez píxeles y quiero llenar
tanto la dirección Entonces utilizo Tiger ambos. Llenó el área
en XXs también en los YxS y se expandió
igual a true Entonces si cambio el tamaño
de nuestra aplicación, aún así va
a llenar el área. Y si configuro ese archivo y ejecuto este código en mi
terminal después del archivo 70, si ejecuto este código, si ejecuto
este código en mi terminal, es como se veía. Si amplío el área, aún así, se
puede ver que se siente
el área de texto de desplazamiento. Este es el diseño simple que
construimos para mostrar el resultado de la búsqueda. Esta es nuestra barra de búsqueda
donde el usuario va a poner la consulta y
tenemos el botón de búsqueda. Si presiono el botón de búsqueda, va a encontrar la
solicitud en el sitio web, y de acuerdo con
el resultado del sitio web, va a imprimir todo
el resultado uno por uno. Básicamente, vamos a imprimir un total de diez resultados en
esa área de texto de paseo. Entonces esto es todo para este tutorial. Gracias por ver
este video
mantente atento para la siguiente parte
de este tutorial, donde vamos a
trabajar en nuestra función, y nuestro nombre de función es buscar. Entonces gracias por ver
este video Sytune.
59. Trabajar en la función de búsqueda: Ahora tenemos que trabajar
en esta función. Siempre que el usuario haga clic en
este botón de búsqueda, quiero ejecutar la función. Al principio, necesitamos obtener la entrada del usuario desde este campo de
entrada. Esta variable. Entonces voy a eliminar
pass y helm type query,
query igual a entry dot G Math. Entonces voy a
establecer condición IP. Si no consulta, entonces dentro de
esta condición IP, aquí, voy a escribir return. Básicamente, podría leer el texto de la
entrada del cuadro de entrada. Si está vacío, entonces directamente va
a detener la ejecución. A continuación, necesitamos
borrar el resultado anterior y mostrar el texto de búsqueda. Para eso, aquí, voy
a escribir cuadro de resultado, cuadro resultado método de eliminación de puntos, dit quiero eliminar desde el inicio desde la
posición inicial hasta la posición final. Para eso, necesitamos seleccionar 1.0. Se va a definir
la posición de inicio, y luego voy a
escribir el método ttk dot Se va a borrar
ese cuadro de resultados de búsqueda. Ahora, volvamos
al código otra vez. Para no borrar el cuadro de búsqueda, quiero mostrar la consulta de búsqueda
actual en ese cuadro de resultados. Para eso aquí estoy escriba cuadro de
resultado punto Insertar. Y quiero iniciarlo desde
fin del texto y aquí uso Estring y me propina
buscando nuestra consulta Después barra inversa N para nuevas líneas. A continuación, voy a
preparar los datos de URL. Para eso, voy
a usar el sitio web DDG, y voy a usar
la versión TML de DG Entonces voy a escribir
una URL variable,
URL igual a DPs colon slash slam.dog.com
slashMLA Es la
versión GETML para scripting. Por lo que vamos a enviar la
solicitud a esa página web. Y a continuación, tenemos
que fingir que vamos
a usar un navegador. La solicitud se envía
desde un navegador. Para eso, necesitamos
establecer el encabezado. Entonces voy a escribir encabezados,
encabezados iguales a dentro
del carnivorouss,
user no es, y el
valor es Se va a pretender que la solicitud viene
de un navegador. Ayuda a evitar el
bloqueo por parte del sitio web. A continuación, necesitamos almacenar la consulta de búsqueda en
un formato de diccionario. Para eso, aquí,
voy a escribir datos iguales a dentro del Kaliss Aquí uso un diccionario y la clave del diccionario es Q
y el valor es query. Este parámetro Q utilizado por Dan Taco y aquí
almacenamos la consulta de búsqueda en
un formato de diccionario. A continuación, tenemos que
enviar la STDPRquest. Para eso, vamos
a usar post Math hoop, y aquí necesitamos
decir tres parámetros, URL, encabezados y datos. La suma vincula la respuesta igual al método de post de punto de
solicitud. Y dentro de la
rotonda pasaré los datos de URL y encabezado Utilizándolo, aquí enviamos la solicitud de
post al servidor. Y también, recuperamos la respuesta
estimada y almacenamos en esa
variable en formato de texto. Ahora bien, si imprimo el
resultado en un cuadro de resultado, entonces aquí estoy escriba, si imprimo la respuesta, entonces escriba result box dot insert. Y dentro del receso de carrera, voy a empezar desde
el final y aquí usando Fstring dentro de la ress Cali
quiero imprimir las tomas de
respuesta Entonces, sea lo que sea que
obtengamos en respuesta, vamos a imprimir
en ese cuadro de búsqueda, y voy a establecer ese archivo. Después de configurar ese archivo,
si ejecuto este código en mi terminal y
busco en nuestra consulta, como cualquier cosa puedes
buscar cualquier cosa, Python, idioma, y presionar Enter, puedes notar que
va a imprimir toda
la estructura de estimación. Déjame mostrarte.
Entonces después de presionar el botón de búsqueda, puedes ver que imprime la
estructura completa de estimación con etiquetas, y se ve muy jibberish Tenemos los títulos,
etiquetas, resultados, todo lo que
imprime en esa caja. Ahora, tenemos que
filtrarlo también. Tenemos que embellecerlo. Para eso, voy a usar una sopa
hermosa para
analizar el contenido. Entonces vamos a convertir TML
sin procesar a un formato
estructurado Entonces, por ahora, voy
a comentar esta línea. No lo necesitamos. Y aquí, voy
a pasar los contenidos. Entonces voy a crear
una sopa objeto sopa, sopa igual a sopa hermosa. Dentro del
proceso redondo, voy
a pasar el texto en sí, así que hay tipo response dot text. Y yo uso este
analizador, t dot parser. Ahora es muy fácil
extraer el elemento. A continuación, necesitamos encontrar todo
elemento profundo con resultado de clase. Entonces aquí, voy a definir
una variable llamada results,
resultados iguales al método final de sub
punto. Y dentro del receso redondo, quiero apuntar a todos
los elementos profundos. Entonces utilizo etiqueta profunda. Entonces aquí paso Dev. Va a apuntar a
todas las etiquetas profundas. Pero en nuestra página,
hay muchas etiquetas profundas, pero sobre todo, quiero apuntar
a la clase de resultado. Quiero apuntar a
etiqueta profunda con clase de resultado, así defino el
subrayado de clase igual al resultado, y lo almacenamos en
esa variable de resultados Ahora bien, si imprimo ese valor de resultado en nuestro cuadro de
búsqueda de tipo, resultados punto insertar, aquí, voy a imprimir los resultados de la
variable de resultado y establecer este archivo y ejecutar este código en mi terminal y en
nuestra palabra de búsqueda, si escribo algo,
supongamos HTML. Quiere buscar tabla
y presionar el botón de búsqueda. Ahora se puede ver que
devuelve el resultado. Devuelve el resultado, pero esta vez
va a imprimir, va a apuntar solo al dag
profundo con resultado de clase. No apunta a otros. Se va a devolver
toda el área de elementos que tienen esta clase. Y dentro de este
elemento profundo, se puede ver, tenemos otro
elemento profundo, H a elemento. Aquí tenemos el ancla
con resultados de clase A. Contiene el título, también el enlace, el enlace del sitio web. Entonces hay que apuntar a esa
clase con el elemento. Y para anclar la descripción
proporcionada por el sitio web, necesitamos apuntar a los resultados de la clase
Snip, esta Así que vamos a hacer
eso en la siguiente parte de este tutorial con
la ayuda de for Loop. Entonces, uno por uno,
voy a apuntar a todos los enlaces proporcionados
por este sitio web. Y depende de ti
cuántos resultados quieres
anclar en ese cuadro de resultados,
en ese cuadro de búsqueda. Así que gracias por
ver este video, estad atentos para la siguiente
parte de este tutorial.
60. Muestra el resultado en un cuadro de texto: Oigan, chicos, me alegro de volver a verles. Esta es otra parte y la
última parte de este tutorial. Y aquí voy
a correr un seguimiento. ¿Por qué tenemos que hacer un seguimiento? Porque necesitamos
apuntar sólo a diez resultados. Necesitamos apuntar
solo al elemento de diez dB, el primer elemento de diez dB. Y necesitamos imprimir el enlace, la etiqueta
del título y la descripción. Para eso, necesitamos
usar ese bucle. Algún tipo para I resultado
en enumerar función. Entonces dentro de la Rundrass
aquí a partir de los resultados,
utilizo la técnica de rebanado, listan la técnica de rebanado Y a partir de aquí,
apunto al resultado de diez. Y aquí lo empiezo
desde el primer resultado. Recuerde, represento el número de
índice y resultado representa
cada bloque de búsqueda. Ahora, es posible que tenga duda de por qué usamos enumerate function La función Enumerate
agrega un índice. Quiero decir que va a agregar un número de índice a
cada uno de los elementos. Cada uno de los resultados de búsqueda. Funcionará como mostrador. A continuación, desde el resultado de la búsqueda, voy a apuntar a
la etiqueta del título. Pero antes, voy a
comentar esta línea por ahora, no
necesito esta línea. Y dentro de este bucle for, aquí, voy a apuntar a la etiqueta
del título usando el nombre de la etiqueta también la etiqueta
con una clase en particular. Samotag title tag igual
al resultado punto Find. Y usando el método fino, vamos a encontrar
toda la etiqueta de anclaje y la
etiqueta de anclaje particular que tienen exactamente
la misma clase, resultado undercoe A,
y de la misma manera, necesitamos encontrar la descripción Entonces, a continuación voy a
apuntar a la etiqueta Snippet. Para eso, voy a escribir una etiqueta de fragmento variable igual
al método de búsqueda de puntos de resultado Y aquí, voy a
apuntar a la etiqueta de anclaje
y a la etiqueta de anclaje con este resultado de clase underscoe
underscore, A continuación de esta etiqueta de título, voy a extraer
el título y la filtración. Sí, esta etiqueta de título contiene el
título y el enlace. Entonces para extraer eso aquí, voy a definir
una variable llamada title igual a title
tag dot gate text. Entonces, usando el texto de Gate, vamos a obtener el texto
de la etiqueta del título del título. Con eso, también, necesitamos establecer una condición p para manejar
los datos faltantes. Para eso, voy a escribir
si etiqueta de título sin título. Si no hay ningún título
disponible en esa etiqueta, entonces vas a imprimir
título igual a ningún título. Ahora después de extraer el
título de esta etiqueta de título, necesitamos extraer el
enlace de la etiqueta de título. Para eso, aquí, voy a escribir link igual a
from title tag, title tag dentro de
las llaves cuadradas, dentro de la bris cuadrada
dentro del doble curso, quiero apuntar al atributo Aquí voy a apuntar
al atributo llamado HREA que va a
contener el enlace exacto Entonces escribe HREF y también voy a establecer la
condición si etiqueta del título, lo
contrario, va
a imprimir hastexg Si no hay enlace, entonces va a
imprimir la etiqueta has. A continuación, necesitamos extraer la descripción de
la etiqueta de fragmento Para eso, voy a Snip it
equival para snipitag equival para snipitag Y aquí digo que condicione si etiqueta
Snippy otra cosa sin descripción Si hay una etiqueta snippy, entonces va a imprimir
el texto de la etiqueta Snip,
y si no hay texto de etiqueta
snippy, entonces no va a
imprimir Entonces uno por uno, voy
a imprimir el enlace del título y la descripción en
nuestro cuadro de resultados. Así que aquí, voy a
apuntar a la caja de resultados de inserción de
punto Método. Y aquí insertamos el título. Vamos a
comenzar desde el final, y usando la cadena E, primero imprimo el
número de índice de este resultado, luego imprimo el
título de este resultado. Entonces utilizo una nueva
línea para el espacio, y aquí puedes notar que usamos una etiqueta de título porque
usando esta etiqueta, más adelante, voy a darle
estilo a este texto, el texto de este título. Después de eso, voy
a imprimir el enlace. Entonces voy a imprimir
el fragmento también. Ahora después de hacer eso, configura el archivo y
ejecuta este código en mi terminal y veo es
que funcione correctamente o no. Ya casi terminamos. Entonces
voy a buscar una consulta. En nuestro caso, voy a
buscar el nombre de mi país, India y presionar Enter, y presiono el botón Buscar. Después, algún
tiempo, como se puede ver, devuelve resultado
buscando la India. Es nuestra consulta, y
este es nuestro título, y este es el enlace, y ese es el enlace proporcionado por
el buscador. Y es la descripción
proporcionada por este sitio web. Y como puedes ver, cada vez
que imprime el número de índice, es trabajo como contador,
e imprime un total de diez resultados en nuestro cuadro de resultados porque mencionamos imprimir
diez resultados en nuestro bucle. Ahora necesitamos hacer clic en
este enlace. Para eso, volvamos
al código porque si
hago clic en este enlace, quiero abrir el
enlace en mi navegador. Entonces volvamos al código. Entonces quiero hacer clic
en el enlace. Y para ello, primero, necesitamos el
índice inicial y el índice final. Para obtener la posición del enlace, necesitamos el índice de inicio
y el índice final. Entonces voy a definir
índice de inicio igual a aquí, voy a apuntar cuadro de
resultado de cuadro de resultado índice de punto, índice. Después dentro del receso
redondo, primero, voy a escribir pk dot insert. Éste. Ahora bien, ¿
qué va a representar? inserto Pdot representa la
posición actual del cursel en la casilla de selección Y para moverme hacia atrás, aquí, voy a usar
signo de concatenación y cadena E. Concatenar con el interior de
los códigos dobles. Dentro de los códigos dobles, aquí, voy a extraer
la longitud del enlace. Entonces dentro del Cariss, voy a usar la función
N AE N, N, y dentro del receso
redondo aquí, voy a pasar el
enlace variable link Eso es. Supongamos que tenemos
19 caracteres en nuestra fuga, y como te dije,
necesitamos movernos hacia atrás porque aquí
seleccionamos la
posición final de este enlace. Entonces voy a usar signo
menos longitud de este enlace. Además, después de Calibrass
voy a usar un personaje llamado pequeño C.
Ahora, ¿qué es esto Básicamente, esta es una sintaxis
especial de Kiner. Si usamos plus sine, entonces va a seguir adelante. Y si usamos menos seno, entonces se va
a mover hacia atrás. Y aquí definimos el lngth, el personaje, cuántos
personajes tenemos en ese vínculo Supongamos que si tenemos 19
caracteres en ese enlace, entonces a partir de este punto, va a mover 19
caracteres hacia atrás. Y esto es lo que
exactamente usamos en ese código. Entonces ahora tenemos la posición de partida de
esta ventaja en ese punto. Ahora también necesitamos
la posición final. Para eso solo escriba índice, índice guión bajo igual al índice de punto de
cuadro de resultado , inserción de punto de
ticker Se va a extraer
la posición final. A continuación, necesitamos aplicar una
etiqueta al rango de texto. Para eso aquí, voy a escribir result Box dot at tag method. Cuadro de resultado punto en la etiqueta
dentro de la Runress. Primero, necesitamos
proporcionar un nombre de etiqueta, y como nombre de etiqueta, voy a usar el nombre del
enlace en sí, y luego necesitamos definir
la posición inicial, el índice de inicio, y paso el
índice de inicio de un enlace. También pasamos el
índice final de un enlace. A continuación, voy a agregar
un evento a este enlace, y voy a
usar click event. Para eso, voy a escribir
result box Tt, tag, bind. Después dentro de las rotondas, voy a etiquetar a
Link Link en sí Y a una coma aquí
voy a usar, y aquí voy a
usar el mouse click derecho Para eso, dentro de
los códigos dobles, voy a usar ese código. Botón uno. Entonces en coma, aquí uso un one liner
función Lambda,
Lambda E. Y aquí uso código de
evento botón uno Es para p clic del ratón. Entonces, si alabo el mouse de labios
haga clic en este enlace, va a
activar este evento. Y luego utilizo una función corta
anónima. Es una función pequeña en lugar
de usar código de alineación grande. Y estas funciones
se ejecutan cuando hacemos clic en este botón. Y en esa función, representamos el objeto evento. La impresora
lo presiona automáticamente cuando ocurren los eventos. Aquí no lo usamos,
pero debe estar incluido. Y luego viene la parte
más importante. URL igual al enlace. Esto vio el
problema común de Python llamado enlace tardío. Sin esto, todos los clics
abren solo el último enlace. No va a abrir
el enlace exacto en sí mismo. Aquí tecleo URL igual
a link, colon, webbrowser dot Open method, y voy a
abrir la propia URL Ahora cada Lambda almacena su
propia copia del enlace, y este es el comportamiento
correcto. Cada resultado abrió su propia URL. Y la función
navegador web punto abrirla va a abrir el enlace en
un navegador predeterminado. Ahora después de eso,
voy a darle estilo
al enlace usando métodos de configuración. Entonces Tipo, cuadro de resultado
punto, etiqueta, config. Y dentro de las rotondas
voy a apuntar al propio enlace, y voy a establecer
primer plano color azul y además voy a agregar Entonces se va a agregar el
subrayado a cada uno de los enlaces. También va a
cambiar su color. Entonces ya casi terminamos. Simplemente voy a darle
estilo a esta etiqueta de título. Voy a aplicar un teléfono un
poco más audaz y una fuente más grande a este título Para eso, en esa sección, voy a atar el
cuadro de resultado dot Tag Config Method. Y voy a
apuntar a esta etiqueta. Titulo, y lo voy a
decir color de fuente AL. Y aquí dije fuente Aerial, y el tamaño de la fuente es 12, y uso la
fuente boulder. Eso es. Y ahora voy a configurar este archivo y ejecutar este
código en mi terminal. Después de ejecutar este
código en mi terminal, como pueden ver, está
abierta la ventana. Y voy a buscar
mi consulta en lenguaje Python. Y si presiono este botón de búsqueda, ahora puedes notar
que es imprimir nuestro resultado. Imprimo todos los títulos con fuente
boulder y todos los enlaces con subrayado y color azul Y ahora, si quieres
abrir alguno de los enlaces, simplemente haz clic en este enlace, y va a abrir
el enlace en tu navegador, en tu navegador predeterminado. Si quieres abrir
este enlace de Wikipedia, simplemente haz clic en este enlace,
trae a la página web de Wikipedia. Entonces así es como su trabajo. Y como te dije, va
a devolver un total de diez resultados. Depende de ti cuántos
resultados quieres mostrar. Entonces esto es todo para este tutorial. En ese proyecto, creo
una mini búsqueda en Nin GY. Básicamente, extraemos el resultado de un sitio web en nuestro caso, Doug DGG, y lo extraemos y
organizamos usando el modo de sopa
hermosa Básicamente, realizamos algún
pequeño método de flejado web, y luego lo embellecemos e imprimimos el resultado
en nuestro Gracias por ver este video. Estén atentos para nuestro próximo proyecto.