Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Corrección Examen - Vídeo 3 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Corrección del examen de SGE - Python
En este vídeo vamos a ver cómo meter los diferentes widgets dentro de las cajas o los frames que hemos ido creando.
00:00:11
Entonces vamos a poner primero, en el mismo orden en el que las hemos ido creando, los diferentes widgets.
00:00:21
En cabecera lo que va es el nombre del alumno, ¿vale? Entonces, o bien os hacéis otra función en la que vais cargando la cabecera, el pie, los botones, el principal, todas estas cosillas, o lo vamos haciendo a continuación.
00:00:30
Como en el examen os pedí hacer clases, pues vamos a hacerles una clase. Aunque insisto en que os la podréis hacer, seguir haciéndolo debajo, ¿vale? Repitiendo con el widget, con el label, ir metiendo el texto, ir metiendo la fuente, el tamaño, dónde queréis dibujar ese widget, que es lo importante, ¿vale?
00:00:53
En este caso estamos en la cabecera, entonces todo eso hay que tenerlo un poco, bueno, lo hacéis un poco como a vosotros os venga mejor y sea más óptimo, ¿vale?
00:01:17
En este caso, le voy a declarar una clase que se llame mi texto, que no va a heredar de nada, que tiene como siempre su constructor init-bajo-bajo, y en este caso le voy a pasar a este init el self, como siempre es una clase,
00:01:28
le voy a pasar la sección donde quiero que me lo dibuje, le vamos a pasar el texto que quiero que me ponga, le voy a pasar la fuente, el tamaño, le vamos a pasar la posición y le voy a pasar el color.
00:01:53
Por ejemplo, luego ya vamos viendo si me hace falta más cosas, pues le vamos poniendo más cosillas, ¿vale?
00:02:15
Y aquí para poder usarlo en diferentes métodos de esta clase, pues como siempre vale el self.sección es igual a sección, self.texto es igual a texto, self.fuente es igual a fuente,
00:02:21
self.tamaño
00:02:51
es igual a tamaño
00:02:57
self.posición
00:03:01
es igual a posición
00:03:08
y self.color es igual a color
00:03:10
vale, y ahora recordad que como ya le hemos metido el self
00:03:16
a todas estas variables ya son parte de esta clase
00:03:21
es información de esa clase, de esa instantiación de esa clase
00:03:24
vale, entonces aquí ahora
00:03:29
lo que voy a decirle, lo que vamos a hacer es la función
00:03:33
donde cargo el texto, entonces lo vamos a llamar
00:03:36
textLog, por ejemplo, le paso el self
00:03:41
y ahora lo que hago es dibujar ese texto
00:03:45
vale, entonces le vamos a meter self.primero, la sección
00:03:48
vale, entonces le digo self.sec
00:03:53
esto en realidad no me haría falta hacerlo así, pero bueno
00:03:57
yo siempre se lo asigno, la salida del widget siempre la asigno a una variable
00:04:01
por si luego tengo que hacer referencia, vale, esto es igual a tk.label
00:04:04
porque es un label lo que queremos
00:04:09
y tk parece
00:04:11
no está declarado, entonces tk tenemos que declararlo
00:04:17
ahí arriba, ¿vale? como siempre
00:04:21
así que vamos a ello
00:04:23
vamos a poner aquí arriba
00:04:26
el import teca inter
00:04:31
azteca, ¿vale? y así ya lo tenemos
00:04:36
como siempre, vamos a ir a este punto y como decirlo
00:04:44
me vuelvo un poco loquillo
00:04:47
vale, entonces tenemos el widget label de tk
00:04:52
y aquí lo que le voy a decir es
00:04:57
donde quiero que me lo dibuje, que es lo que le hemos pasado
00:05:00
al constructor en sección, vale, que sección a su vez
00:05:05
lo hemos pasado a la variable de instancia del self.section
00:05:10
entonces que le voy a decir aquí, pues quiero que me lo dibuje en self.section
00:05:13
vale, y el texto que va a ser igual a self.texto, vale, en este caso, ¿qué es lo que nos va a hacer?, nos va a, ya le hemos dicho donde quiero que me ponga esta etiqueta,
00:05:20
y el texto que quiero que me escriba, vale, eso se lo paso a la clase, en el constructor, lo meto en la variable distancia, y aquí se lo paso al widget, vale,
00:05:39
Bueno, ¿qué más quiero que me haga esta función? Pues por ejemplo, ya que le hemos pasado el color, vamos a decirle el color que queremos, ¿vale?
00:05:49
Y el color, pues le vamos a decir que nos coja este color de fuente, ¿vale?
00:06:07
Entonces, para hacer eso, esta clase la hemos llamado coloresAplicación, pues vamos a crearnos una variable que la vamos a llamar, pues eso, coloresAplicación, entonces le vamos a poner self.colores, es igual a coloresAplicación, ¿vale?
00:06:15
Y una vez que tengo ya instanciado colores a aplicación, puedo coger cualquiera de estos colores, pues vamos a meternos en self.sec, ¿vale? Para hacer referencia al label, .config.
00:06:37
Y así modificamos la configuración, ¿vale? Y en este caso la configuración, es decir, el FG, esto va a ser igual a el self.color, el color que hemos pasado y queremos que sea nuestro texto, ¿vale?
00:06:55
la fuente, pues en este caso
00:07:15
le voy a hacer una fuente siempre
00:07:18
ah no, se la hemos pasado también antes, así que le ponemos
00:07:21
entonces el self.fuente
00:07:26
pero font va entre paréntesis
00:07:29
así, self.font
00:07:35
fuente, esto
00:07:37
y el tamaño que también se lo hemos pasado
00:07:40
ser punto tamaño
00:07:44
vale
00:07:47
vale
00:07:48
nos falta decir el color de fondo
00:07:50
bajo el bg
00:07:53
y esto va a ser igual a
00:07:55
ser punto, como es el color
00:07:58
de cabecera
00:07:59
es lo de
00:08:00
aquí está el color cabecera
00:08:03
vale, pues entonces ponemos el self
00:08:05
vamos a poner colores
00:08:07
porque es donde he instanciado colores
00:08:09
aplicaciones, es ser punto
00:08:11
colores
00:08:13
a un momentito que llaman
00:08:14
vale
00:08:16
entonces estábamos diciendo el color
00:08:19
de fondo, el pgColor
00:08:21
y lo estábamos haciendo contra colores
00:08:23
que es la instancia de colores aplicación
00:08:26
y en este caso es colores
00:08:28
y le digo que me coja el color
00:08:29
este, justo, el color
00:08:32
de cabecera
00:08:36
vale
00:08:37
¿qué más nos haría falta?
00:08:38
Podríamos decirle que nos devuelva, meterle un pathX y un pathY, por ejemplo.
00:08:47
Esto ya es un poco lo que como a vosotros os guste más, como diseñadores de la interfaz.
00:08:54
Vamos a ponerle este, el pathX, pathY, 10.
00:09:02
Bueno, y por último, como siempre, al widget recordad que hay que decirle dónde quiero que me lo dibuje.
00:09:07
Vale, o sea, al final con los widgets lo importante siempre es que nos meta, o sea, decirle dónde queremos dibujar el widget y luego posicionarlo.
00:09:16
Con eso ya nos valdría, el resto son atributos que podéis usarlos o no.
00:09:33
Vale, entonces lo último que nos quedaría sería el self.sec.pack
00:09:40
Vamos a usar el pack
00:09:47
Recordad que teníamos tres formas de alinear los widgets
00:09:48
Con el pack, con el grid y con el place
00:09:52
Vale, y entonces en este caso, ¿qué le voy a decir?
00:09:55
El side va a ser igual a self.position
00:09:59
Que para eso se la hemos pasado, ¿vale?
00:10:06
Y esta sería una clase a la que yo la puedo llamar constantemente y ir dibujando el texto que yo quiera, en la sección que yo quiera, con el tamaño, con todo eso, ¿vale? Con la fuente que yo quiero, ¿vale? Y esto está bien, esto es uno de los principios de programación que es reutilizar el código.
00:10:10
Vale, volvemos a nuestra clase ventana principal y aquí es donde vamos a llamar a nuestro texto, ¿vale? Entonces, vamos a ver, aquí le vamos a decir que mi texto, bueno, primero tenemos que importar, obviamente, esta clase.
00:10:29
mi texto. Vale. Segundo, vamos a coger y vamos a decirle, a ver si así me vale, sin
00:10:59
tener que hacer mucho más, digo mi texto, paréntesis, a ver si nos lo coge. Primero,
00:11:23
¿Dónde quiero la sección? ¿Dónde queremos dibujarlo? self.cabecera.
00:11:32
Segundo, el texto que queremos que nos dibuje. En este caso es el nombre del alumno que vamos a poner, Lucas.
00:11:41
tercero, la fuente
00:11:49
vale, entonces para la fuente
00:11:52
yo ahora mismo estoy con el
00:11:54
portátil, con el Mac
00:11:56
pues voy a usar
00:11:57
el
00:12:00
gusheri block
00:12:02
vale, el tamaño
00:12:03
vamos a poner a 20
00:12:13
luego
00:12:15
ahora lo testeamos y lo vamos
00:12:16
mirando
00:12:19
tk.
00:12:19
punto
00:12:22
pues top
00:12:22
vale, le decimos que no lo ponga arriba
00:12:25
ahora nos pide el color
00:12:28
self.colores
00:12:32
color
00:12:35
aquí como color principal
00:12:39
vale, pues aquí le vamos a decir
00:12:45
el color de la fuente
00:12:48
entiendo que este
00:12:50
vale
00:12:52
el color de la fuente
00:12:53
el color de la fuente
00:12:58
el color de la fuente, vale, yo creo que sí, vale, y ya estaría, no nos pide nada más,
00:12:59
ahora vamos a probarlo, así que me vengo a principal, y esto no me ha dado ningún error,
00:13:11
pero tampoco me lo ha puesto, vale, ¿por qué no nos ha impreso, por qué no nos ha mostrado el widget?
00:13:22
Pues porque en la clase no hemos llamado al testload
00:13:29
Entonces tenemos que llamarle desde aquí al cell.textload
00:13:32
Con eso ya sí, ya, claro, o le llamamos desde la misma clase
00:13:38
O le llamo desde donde he instanciado esta clase
00:13:44
¿Vale? Pero tengo que llamarle, por eso no me estaba haciendo nada
00:13:51
Vamos a ver si ya sí nos lo hace
00:13:53
Le damos al play, ¿vale?
00:13:55
Y aquí ya tenemos el nombre con el tipo de letra.
00:13:58
Bueno, pues ese sería el nombre, ¿vale?
00:14:03
La fuente que queráis y que os la coja.
00:14:07
La que yo os pasaré para los exámenes y eso son fuentes que vienen en los portátiles de clase, así que no hay problema.
00:14:12
Vale, y te has hecho una clase que es muy cómoda a la hora de trabajar,
00:14:20
Fijaros que ahora ya solo para meter el texto del pie, ¿no? Pues tengo que hacer básicamente lo mismo, es mi texto, self. En este caso, ¿dónde lo quiero meter? En el pie, ¿vale?
00:14:24
¿El texto que le quiero pasar?
00:14:56
El nombre...
00:15:01
No, era examen
00:15:02
primera
00:15:04
evaluación.
00:15:06
Curso
00:15:14
2023
00:15:15
2024
00:15:18
¿Vale?
00:15:20
Le voy a pasar la misma.
00:15:26
El
00:15:29
Cucheri
00:15:29
blog
00:15:31
le pasamos el mismo tamaño
00:15:33
le paso la orientación donde quiero que me lo ponga
00:15:39
a la izquierda, me parece que era, va a ser punto
00:15:46
y aquí le vamos a poner
00:15:50
color fuente secundaria
00:15:55
por ejemplo, no me acuerdo si era este
00:16:02
vale, pero ahora lo probamos, en todo caso, ya veis que
00:16:05
ahora ya para ir metiendo texto en las diferentes
00:16:10
secciones de las que hemos ido creando
00:16:13
sería tan simple como esto, vale, bueno, entonces nos vamos
00:16:18
a main, le doy al play
00:16:22
y aquí está, vale, pone Lucas aquí arriba
00:16:25
y aquí a la izquierda, examen primera evaluación, curso 2023-2024
00:16:30
vale, y ya tenemos
00:16:35
la fuente o el texto
00:16:37
¿vale? en la caja de arriba y en la caja de abajo
00:16:41
¿vale? ¿qué más tenemos que ir metiendo? los botones
00:16:44
¿vale? entonces para el tema de los botones
00:16:51
bueno, antes de los botones
00:16:54
metíamos otro texto en el
00:17:01
principal, cuando arrancaba la aplicación que ponía Villablanca
00:17:05
rp, vamos a hacer eso, vamos a ponerle
00:17:09
en este caso, bueno, pues le vamos a poner self.
00:17:14
vamos a ponerle
00:17:23
set es igual a tk.label
00:17:24
que en este caso podríamos también pasárselo directamente
00:17:29
con mi texto, vale, pero se lo voy a pasar
00:17:33
para que veáis que también podéis
00:17:37
estar trabajando con los widgets directamente sin necesidad de estar creando clases
00:17:41
¿vale? aunque la forma de crear la clase
00:17:45
te permite la reutilización del software, así como lo voy a hacer ahora pues no
00:17:49
vale, entonces vamos a poner
00:17:53
el label, queremos que nos lo ponga en self.principal
00:17:57
queremos que el texto
00:18:01
sea igual a
00:18:05
eh
00:18:08
Villablanca
00:18:09
el exacto de carne
00:18:12
y le meto
00:18:15
el punto rp
00:18:18
vale
00:18:20
nuestro rp
00:18:22
le decimos ser
00:18:23
ser punto
00:18:27
colores
00:18:30
es igual a
00:18:34
colores aplicación
00:18:35
vale
00:18:38
alguna instancia, lo mismo que he hecho antes, pero aquí tengo que estar repitiendo todo el tiempo
00:18:39
lo mismo, vale, por eso os digo que es más cómodo hacer
00:18:43
una clase y ir llamando
00:18:47
a la clase y ya está, vale, eso ya os lo dejo a vosotros hacerlo de las dos
00:18:51
formas y así lo vais probando, nfg es igual al
00:18:55
self.colores
00:18:59
o color fuente, vale, en principio
00:19:02
esto ya no me hace falta tampoco, si esto ya lo hemos declarado arriba
00:19:15
self colores, esto ya lo tenemos aquí declarado
00:19:18
pues no nos hace falta, así que esto fuera
00:19:23
esto fuera de aquí
00:19:25
vale, en fg esto
00:19:28
le vamos a decir también la fuente
00:19:32
que le voy a poner la misma
00:19:37
La fuente siempre, que siempre se me olvida
00:19:42
Es entre paréntesis
00:19:56
Siempre se pasa entre paréntesis
00:19:59
Y se pasa la fuente y el tamaño
00:20:03
Vale, pues aquí el tamaño, pues por ejemplo
00:20:10
Vamos a meterle a 60
00:20:14
Porque está en el principal y es algo más
00:20:15
queremos que sea más grande, vale, insisto, esto todo es
00:20:18
diseño, dejé el color de fondo, le digo
00:20:22
que sea, ser punto, color
00:20:26
pues ahora estamos en el principal, pues color de principal
00:20:30
vale, y le meto un pad
00:20:35
x de 10
00:20:38
y un pad y de 10
00:20:42
vale, y que es lo que nos faltaría, colocarlo
00:20:47
como siempre, set.sec
00:20:51
.pack, site
00:20:54
site, en este caso yo lo quiero centrado
00:20:58
y aquí lo único que me deja es el left, right, top y bottom, si no le pasas
00:21:06
ningún site directamente ya te lo centra, vale, entonces lo que si
00:21:10
que lo voy a pasar es un path y a 150
00:21:14
cuenta pues para que me lo centre o esto lo voy a hacer un poco a ojímetro a ver cómo nos queda
00:21:17
vale entonces vamos a darle al main le voy a dar al principal bueno y más o menos pues ahí vale
00:21:23
lucas y la blanca rp y el curso y ahora empezaríamos con los botones vale con el tema de
00:21:31
los botones, había que meter primero
00:21:41
una imagen, ¿vale? Entonces
00:21:47
voy a buscar primero la imagen, voy a pausar el vídeo, voy a buscar la imagen
00:21:50
y continuamos. Bueno, una vez que hemos visto que nos
00:21:55
funciona todo, ahora vamos a meter los widgets
00:22:02
del lado izquierdo. Entonces para hacer esto
00:22:05
en el examen nos pedían que pusiéramos una imagen con el
00:22:10
logo del Villablanca en la parte superior, un botón que era en el que cargábamos los
00:22:14
diferentes JSON y luego los guardábamos en la base de datos, en un botón, o sea, eso
00:22:21
se tenía que ejecutar en un botón que estaba justo debajo de la imagen, ¿vale? Siempre
00:22:31
pensando en la parte superior de ese frame y en la parte inferior del frame había otro
00:22:37
botón que cuando lo pulsaba y salía vuestro nombre y algo así vale entonces fijaros como
00:22:43
para la imagen me he creado una carpeta que es package y dentro de package he metido el
00:22:52
logo punto png vale si veis en la documentación de python aconsejan meter todos este tipo de
00:22:59
ficheros que son pues eso imágenes o ficheros que vayamos a utilizar dentro de nuestro python
00:23:09
vale dentro de nuestro desarrollo dentro de la carpeta de pack por eso lo he metido ahí y ya
00:23:18
está bien vale entonces vamos con esto lo primero es cargar la imagen para cargar la imagen me hace
00:23:26
falta el foto image del tkinter vale entonces voy a coger from tkinter import foto image vale vale
00:23:32
esto lo primero lo segundo pues ya empezamos a cargar esa imagen entonces vamos a
00:23:52
crearnos la variable, vamos a llamar por ejemplo
00:23:58
logo, por ejemplo, y este va a ser igual a
00:24:03
tk.photoImage
00:24:07
y le digo el fichero, vale, con el attribute of file
00:24:11
para cargar, aquí solo estamos cargando
00:24:15
o haciendo esa relación, vale
00:24:17
diciéndole donde tengo que ir a buscar la imagen que quiero cargar y lo estoy guardando
00:24:23
en la variable logo, aquí siempre que es un stream
00:24:27
le vamos a decir, pues aquí estás en package
00:24:31
barra y le hemos llamado
00:24:35
logo.png
00:24:39
a veces hay problemas a la hora de cargar las imágenes
00:24:41
y eso puede ser por varias cosas, porque no le hayamos dado bien
00:24:47
la ruta, porque no hayamos puesto bien el nombre de la imagen, porque no hayamos puesto
00:24:51
la extensión, pero también pueden ser problemas de la propia imagen
00:24:55
porque puede ser de 16 bits, puede estar indexada
00:24:59
puede ser, vale, por el formato, por el tipo en el que está
00:25:03
creada esa imagen nos puede dar problemas a la hora de cargar
00:25:07
o de utilizarla dentro de un fichero de Python
00:25:10
vale, en este caso
00:25:15
vamos a pensar que este nos va a funcionar bien
00:25:19
tengo el logo y entonces lo que voy a hacer es un tk
00:25:22
y voy a poner un label, por ejemplo, ¿vale? como siempre
00:25:26
le digo donde quiero
00:25:30
que me lo dibuje, self.
00:25:31
a este le he llamado izquierda
00:25:40
pues izquierda, eso es
00:25:42
el frame donde queremos que nos lo dibuje, ¿vale?
00:25:46
le decimos
00:25:50
image es igual a self.logo
00:25:53
que es donde hemos guardado ese logo que queremos poner
00:25:57
y ya empezamos como siempre a meter el background del color
00:26:01
pues le vamos a poner el color
00:26:05
color izquierda
00:26:08
color izquierda
00:26:14
y ahora nos faltaría situarlo, entonces para situarlo otra forma de hacerlo sería directamente desde aquí, como este widget no se lo he asociado a ninguna variable,
00:26:21
solo tengo la opción de poner el punto, el pack y donde lo queremos situar, en este caso este cap punto, hemos dicho en la parte de arriba el top
00:26:35
y le vamos a meter un padding de 10
00:26:47
¿vale? algo así, vale, si yo aquí hubiera puesto pues por ejemplo
00:26:51
self mi logo o algo así
00:26:56
igual atk.label, luego podría haber puesto el self mi logo.pack
00:26:59
y todo esto, ¿vale?
00:27:03
vale, vamos a ver que nos hace esto, vale, ya tenemos ahí
00:27:07
ese logo, en este caso, este logo le he metido
00:27:13
el bg pensaba que era transparente pero no es transparente, bueno, habría que
00:27:17
buscar el que es transparente, que es el que está en internet, pero ya lo tendríamos
00:27:21
ya lo tendríamos aquí situado, vale
00:27:26
tiene el pad en i de 10
00:27:29
así que bueno, pues por ahora está bien
00:27:33
vale, pues vamos a meterle también
00:27:37
si acaso
00:27:41
que no sé yo si nos va a hacer algo
00:27:42
porque está cogiendo
00:27:50
me lo ajusta
00:27:53
vale
00:27:56
bueno
00:27:58
incluso podríamos decirle
00:28:00
bueno
00:28:06
podríamos cambiar el ancho y el alto
00:28:07
de esta imagen
00:28:10
y así no
00:28:11
que no fuera tan grande
00:28:13
vale, pero vale, yo lo voy a dejar así y ya está
00:28:17
vale, ¿qué es lo que me hace falta ahora? el botón, entonces
00:28:22
vamos a meter, os lo voy a poner
00:28:27
aunque sea un botón solo, como lo haría para hacer
00:28:31
varios botones haciendo una colección de datos
00:28:35
luego esa colección de datos la voy leyendo con un for y voy creando
00:28:38
los botones y es más rápido, ¿vale? Al final es más rápido, aunque ahora parezca más
00:28:43
laborioso. Entonces, aquí vamos a hacer primero esa colección de datos, ¿vale? Y entonces
00:28:51
Entonces vamos a poner el buttonOption, esto es igual a, y aquí iría pasando todos los
00:29:03
botones que quiero ir creando, en este caso es un, vale, entonces, bueno, ¿qué es lo
00:29:15
que le voy a pasar aquí?, le voy a pasar pues, esto ya es como vosotros creáis, yo
00:29:23
lo voy a pasar primero, migración de datos, primero el texto que quiero que me aparezca
00:29:29
encima del botón, luego le voy a decir como quiero que se llame esa variable, que es
00:29:36
ser.ptn opción 1 por ejemplo, vale, para luego hacer referencia sobre ese botón, y
00:29:46
el módulo
00:29:56
load.json
00:30:01
vale, el módulo
00:30:03
al que quiero
00:30:05
que llame, vale
00:30:06
voy a ponerlo así
00:30:09
vale
00:30:11
entonces
00:30:13
una vez tengo
00:30:15
hecho esto, vamos
00:30:17
a hacer
00:30:21
el for que iría
00:30:23
leyendo todas las colecciones
00:30:25
de datos que tengo aquí
00:30:27
En este caso, ya os digo, ¿vale? Es una lista con nuestra colección de datos, solo es uno, entonces, bueno, aquí me haría mi for, en mi for le diría, ¿vale? Dentro de texto, botón, y vamos a ponerle comando, in button, opt-in, ¿vale?
00:30:29
¿Qué es lo que estoy haciendo? Cada uno de estos datos de todas las colecciones, el primer valor me lo vas a guardar en texto, el segundo me lo vas a guardar en botón y el tercero en comando, ¿vale?
00:30:54
Y con eso lo que voy a hacer es llamar a una función, que no la tengo creada todavía, pero la vamos a crear, que la podemos llamar, por ejemplo, configurar botón menú, ¿vale?
00:31:08
y ahí le vamos a pasar el botón, el texto y el comando, vale, vale, entonces ahora vámonos
00:31:24
a crear esa función y esa función va a ser
00:31:42
a ver, estamos bien, vale, le hemos llamado
00:31:48
de configurar
00:31:51
botón menú
00:31:56
vale, y hemos dicho que le pasamos
00:31:59
tres parámetros, el botón
00:32:05
el texto y el comando
00:32:10
que me da igual poner el mismo nombre
00:32:16
que les pongo aquí, vale, me da exactamente lo mismo, porque esto es otra función
00:32:19
y entonces está trabajando con el nombre de esas variables
00:32:24
de esos parámetros de entrada en local, vale, entonces me da igual
00:32:29
no pasa nada, entonces yo aquí le voy a decir que botón
00:32:32
punto, eh, config
00:32:37
config va a ser igual
00:32:43
Ah, primero el texto, pues el texto lo voy a decir que es una cadena de texto, formato, vale, que coja formato y le digo que me coja el valor de texto, vale, que me coja,
00:32:49
esto es sin paréntesis, perdón, esto es una
00:33:09
variable de un parámetro de entrada
00:33:13
entonces le digo f, a ver si lo pongo bien
00:33:15
f, esto sí que es formato string, esto sí
00:33:21
vale, esto es así, vale, le digo
00:33:25
lancho
00:33:29
igual, w si queréis
00:33:31
es moverlo a la izquierda
00:33:36
son los puntos cardinales
00:33:38
pues
00:33:43
el sur
00:33:43
y el norte
00:33:47
¿vale? entonces podríamos
00:33:49
pasarle esos parámetros de arriba a abajo
00:33:51
izquierda y derecha con estas letras
00:33:53
¿vale?
00:33:56
entonces le paso
00:33:58
el west
00:33:59
¿vale?
00:34:00
minúscula
00:34:02
le vamos a pasar paréntesis
00:34:03
el
00:34:08
block, le vamos a pasar el tamaño
00:34:10
15 por ejemplo, vale
00:34:20
bd es un relieve que puede tener ese botón
00:34:25
el bg es igual a, y en bg pues
00:34:29
vamos a usar otro color
00:34:34
que no sea, podríamos usar los mismos que tenemos
00:34:37
le voy a pasar otro código, que es este
00:34:42
vale, y de fondo
00:34:46
eso sí, le voy a pasar el del color
00:34:50
el de color, como es
00:34:54
color izquierdo, self
00:35:01
punto color izquierdo, este
00:35:04
para que me haga el efecto este de transparente
00:35:09
vale, el color de la fuente
00:35:14
le digo que sea
00:35:17
lo que le podemos pasar es el width
00:35:18
que sea igual a 20
00:35:22
que sea igual a 1
00:35:26
y el command
00:35:34
que es igual a
00:35:38
comando, vale, vamos a poner esto
00:35:41
para verlo todo bien, ahí estás, vale
00:35:46
y eso configuraría el botón, y lo que nos faltaría
00:35:52
al final es, botón.pack
00:35:55
esto es igual a side
00:36:00
de acá, punto
00:36:03
y igual 10, vale
00:36:06
para que haya un margen, que haya un espacio entre la imagen y el botón o los diferentes botones, le meto el path en A10 y le digo que me lo vaya ordenando todo en la parte superior, ¿vale?
00:36:13
de esta manera cuando yo llamo a configurar botón ya tendríamos el configurar el botón y
00:36:31
en principio con esto nos debería de valer vamos a verlo
00:36:44
Ah, claro, eso me había
00:36:49
Antes de meter
00:37:01
El
00:37:03
Self.btn
00:37:05
Opción
00:37:10
1
00:37:11
Eso es donde
00:37:13
Le digo que quiero el botón
00:37:15
¿Vale? Entonces aquí es el botón
00:37:18
¿Y dónde quiero ese botón?
00:37:20
Que es en el self.iz
00:37:22
izquierda, vale, ahora sí, ahora hay que decirle dónde lo pintamos, pero o aquí paso directamente el TK, el TK es el botón izquierda, vale, haría eso, o lo hago así,
00:37:24
Enter, load, el comando es load json, serve, y aquí le pongo un pass, vale, ya estás,
00:37:40
ahora ya si no, no debería de coger todo, aquí estás, vale, y entonces tenemos nuestro
00:37:56
botón, que ahora mismo no hace nada, bueno y nos tendríamos ahora que hacernos el último
00:38:04
botón que sería el de la información de cada uno de vosotros, vale, entonces vamos
00:38:14
a terminar este vídeo con ese botón y ya en el próximo les damos funcionalidad a esos
00:38:27
botones y ya estaría. Vale, aquí sería, por ejemplo, ser.btnOpcion2.confi, vamos a
00:38:36
vamos a meter aquí también, self.btn.funcion2.tk.button, self.izquierda, vale, y aquí es el config,
00:38:56
vale, y en el config le vamos a pasar, pues igual que antes y es todo lo mismo, el texto,
00:39:23
vale, le ponemos
00:39:32
punto de anclaje
00:39:37
vale, la fuente
00:39:50
que hemos dicho que es
00:39:54
por un lado
00:39:57
boucherie block y el tamaño que hemos dicho que son 15, que más le podemos pasar, el
00:39:59
verde que es para darle ese relieve que no se lo voy a pasar, veje color que es igual
00:40:16
y le vamos a poner, pues lo voy a poner, a ver si lo coge, a ver si le da la gana, vamos
00:40:23
no me lo va a coger, a vosotros si debería
00:40:33
de coger
00:40:35
3799
00:40:35
y el pp
00:40:38
se lo voy a poner igual que
00:40:55
el de antes que es color
00:40:58
o colores como le hemos llamado
00:41:01
color izquierda
00:41:03
color
00:41:06
pues lo voy a poner el mismo
00:41:08
color izquierda
00:41:11
izquierda, uy esto está mal, esto hay que cerrar este paréntesis aquí, es el, ¿por qué lo he metido aquí?, he puesto en un D, esto hay que tabularlo para adentro, vale, el self color izquierda,
00:41:15
y vamos a ponerle también el tamaño, el ancho, el width, que como el de abajo le he puesto
00:41:54
a 25, pues 25, el a, que abajo le he puesto el 2, pues a 2, y el comando, que en este
00:42:13
caso vamos a llamar a mi información, vale, en este caso esta función tenemos que crearla,
00:42:37
así que vamos a poner aquí, para que no se me olvide
00:42:53
def
00:42:55
información
00:42:58
pas
00:43:01
así no se me olvida, ¿qué es lo que me faltaría
00:43:04
ahora? situarlo
00:43:09
lo de siempre
00:43:10
que en este caso
00:43:11
va a ser
00:43:15
self.ptl
00:43:16
opción 2
00:43:22
.pack
00:43:24
side
00:43:27
igual
00:43:30
tk.boom
00:43:31
una parte de abajo
00:43:34
un pack
00:43:36
de mi
00:43:38
vecino
00:43:39
vale
00:43:41
ya tendríamos
00:43:44
si está todo bien
00:43:45
algo ha fallado
00:43:47
aquí
00:43:50
Y aquí tengo mi botón y otro botón, el texto alineado a la izquierda o a la derecha, que
00:43:53
eso, lo he hecho con el anchor, el anchor, aquí está Wes, y si no me equivoco por aquí
00:44:20
estará el N, aquí estás, el anchor, vale, N, y así anclo los diferentes, el texto,
00:44:30
vale, a la izquierda o a la derecha en el botón, y ya tendríamos hasta aquí este
00:44:41
vídeo, ya hemos metido esta imagen, hemos metido el texto en el principal, los textos
00:44:47
en el cabezado y en el pie, los botones y en el último vídeo ya lo que hacemos es
00:44:53
la funcionalidad de esos botones. Un saludo chicos, hasta luego.
00:45:01
- Idioma/s:
- Autor/es:
- Mario S.
- Subido por:
- Mario S.
- Licencia:
- Dominio público
- Visualizaciones:
- 57
- Fecha:
- 26 de diciembre de 2023 - 21:37
- Visibilidad:
- Público
- Centro:
- IES VILLABLANCA
- Duración:
- 45′ 09″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 985.80 MBytes