1 00:00:12,400 --> 00:00:35,759 Bueno, en estos vídeos, van a ser dos o tres vídeos, para no hacerlo muy largo, que lo van a hacer de todas formas, vamos a ver cómo es la corrección del examen de la primera evaluación de Python del módulo de sistema de gestión empresarial del curso 23-24. 2 00:00:35,759 --> 00:00:51,719 Entonces, lo primero que os pedía en el examen era hacer una ventana, generar una ventana para poder dibujar dentro de esa ventana principal los diferentes widgets. 3 00:00:51,719 --> 00:01:10,700 Siendo widget los botones, las cajas de texto, todos los objetos que conocéis que se pueden insertar dentro de un formulario y además esos otros contenedores que puedo meter dentro del Padre para ir dibujando, 4 00:01:10,700 --> 00:01:24,659 para ir pintando esos objetos de los formularios de la forma que sea más cómodo cara al proyecto que tengo en frente, ¿vale? 5 00:01:24,659 --> 00:01:35,939 que tengo que desarrollar bueno en python para para hacer que nos visualice una pantalla una 6 00:01:35,939 --> 00:01:47,180 ventana perdón tenemos que trabajar con el teca inter 3 en un fichero normalito para una ventana 7 00:01:47,180 --> 00:01:55,219 normal y ya esto lo primero que hacemos es importar esa librería entonces el importe k inter azteca 8 00:01:57,299 --> 00:02:05,519 vale esto importó la librería tk inter y le pongo un alias vale el azteca que ahora aparece con un 9 00:02:05,519 --> 00:02:14,900 gris más clarito porque no lo he usado todavía vale cuando creamos una ventana se le suele 10 00:02:14,900 --> 00:02:20,719 llamar ventana root si buscáis información por internet por los foros 11 00:02:20,719 --> 00:02:25,780 por la documentación técnica os pondrá root 12 00:02:25,780 --> 00:02:30,340 entonces bueno pues yo lo voy a dejar como root aunque este nombre podría ser 13 00:02:30,340 --> 00:02:36,300 el que vosotros queráis vale entonces root y ahora le vamos a poner tk que 14 00:02:36,300 --> 00:02:43,080 recordar que tk es el alias que le he puesto a tkinter punto tk 15 00:02:43,080 --> 00:02:48,479 esto crea una ventana y escribir esto y escribir esto 16 00:02:48,479 --> 00:02:57,419 es lo mismo tk inter punto tk esto es lo mismo vale 17 00:02:58,919 --> 00:03:05,000 aquí me está dando este problema porque lo importaba así entonces bueno 18 00:03:05,000 --> 00:03:11,280 pero podríais escribir directamente el tk inter vale esto fuera vale 19 00:03:11,280 --> 00:03:15,919 aquí tendremos o tenemos ya importada la 20 00:03:15,919 --> 00:03:21,680 librería le hemos puesto el alias hemos llamado al método tk paréntesis 21 00:03:21,680 --> 00:03:28,159 paréntesis que nos crea una ventana y fijaros los parámetros 22 00:03:28,159 --> 00:03:32,560 que le podemos pasar vale el screen name 23 00:03:32,560 --> 00:03:38,659 el base name class name vale todos estos parámetros 24 00:03:38,659 --> 00:03:46,479 bueno lo último que me faltaría es hacer el root punto main club 25 00:03:47,599 --> 00:03:57,639 vale tenéis que recordar que python es un lenguaje interpretado y tiene que estar repintando los 26 00:03:57,639 --> 00:04:04,800 diferentes widgets vale widget es igual a los objetos que van dentro del formulario tiene que 27 00:04:04,800 --> 00:04:10,319 estar repintando esos widgets cada vez que se lee no cada vez que se 28 00:04:10,319 --> 00:04:16,759 interpreta el lenguaje vale si nosotros ejecutamos esto 29 00:04:16,759 --> 00:04:23,199 aquí ya tenemos nuestra ventana 30 00:04:23,199 --> 00:04:26,680 vale entonces 31 00:04:28,839 --> 00:04:33,939 ya está con estas tres líneas lo básico ya lo tengo ya tengo creado una ventana 32 00:04:33,939 --> 00:04:40,360 que es o que hago referencia a ella a través de root y que puedo empezar a dibujar diferentes 33 00:04:40,360 --> 00:04:47,680 widgets dentro de la misma vale entonces si yo empiezo a poner aquí ahora no son widget ahora 34 00:04:47,680 --> 00:04:53,660 voy a configurar esa ventana por ejemplo empieza con el road root title y le pongo el título no 35 00:04:53,660 --> 00:05:04,560 pues examen segundo de edad le metemos root 36 00:05:04,560 --> 00:05:12,540 geometry le meto el tamaño y la posición 37 00:05:12,540 --> 00:05:19,600 que quiero que tenga esa ventana vale entonces 38 00:05:19,600 --> 00:05:30,540 A Geometry se le pasa un stream en el que los dos primeros valores que van separados entre ellos es el ancho y el alto, ¿vale? 39 00:05:30,600 --> 00:05:40,959 Aquí lo tenéis, si os fijáis, width y height separados por una X y luego le paso la posición en X y en Y, más con más, ¿vale? 40 00:05:40,959 --> 00:05:49,240 O sea, el ancho y el alto lo separo con una X, la posición en X y en Y lo separo con más, ¿vale? 41 00:05:49,600 --> 00:06:02,120 Entonces, ancho, vamos a ponerle 400 por 150, ¿vale? 42 00:06:02,120 --> 00:06:15,439 Y ahora le paso el más y le digo la x, pues x, pues pónmelo en 150, por ejemplo, y pónmelo en 100, por ejemplo, ¿vale? 43 00:06:15,439 --> 00:06:19,459 podemos decirle por ejemplo 44 00:06:19,459 --> 00:06:21,759 el root.resize 45 00:06:21,759 --> 00:06:26,540 a false 46 00:06:26,540 --> 00:06:29,879 para que no se rescale 47 00:06:29,879 --> 00:06:30,819 vale 48 00:06:30,819 --> 00:06:33,180 y podría ir jugando 49 00:06:33,180 --> 00:06:34,839 con distintos parámetros 50 00:06:34,839 --> 00:06:35,680 sobre root 51 00:06:35,680 --> 00:06:38,759 esto nos va a proporcionar 52 00:06:38,759 --> 00:06:43,980 a ver que hemos hecho 53 00:06:43,980 --> 00:06:56,449 me pide 54 00:06:56,449 --> 00:06:57,329 dos 55 00:06:57,329 --> 00:06:58,970 vale 56 00:06:58,970 --> 00:07:01,490 Pues ahora sí 57 00:07:01,490 --> 00:07:04,230 Sí, vale 58 00:07:04,230 --> 00:07:06,430 Me hace la ventana 59 00:07:06,430 --> 00:07:08,470 No me deja 60 00:07:08,470 --> 00:07:09,329 Reescalarla 61 00:07:09,329 --> 00:07:11,769 Ni a lo alto 62 00:07:11,769 --> 00:07:14,790 Ni a lo ancho, porque lo hemos puesto en falso 63 00:07:14,790 --> 00:07:16,649 Ha metido 64 00:07:16,649 --> 00:07:18,089 El título, vale 65 00:07:18,089 --> 00:07:20,769 Y la ha puesto en la posición X e Y que le he dicho 66 00:07:20,769 --> 00:07:22,589 Vale, sí que me 67 00:07:22,589 --> 00:07:23,329 Deja moverla 68 00:07:23,329 --> 00:07:26,370 Pero ni reescalarla 69 00:07:26,370 --> 00:07:28,670 Ni, bueno, y el tamaño 70 00:07:28,670 --> 00:07:34,430 se lo damos nosotros fijo vale bueno pues esto mismo tenemos que 71 00:07:34,430 --> 00:07:40,449 conseguirlo lo tenemos que hacer mediante una clase vale entonces los 72 00:07:40,449 --> 00:07:45,569 pasos van a ser lo mismo pero ahora desde el main page lo que voy a hacer es 73 00:07:45,569 --> 00:07:51,949 llamar a esa clase que voy a crear yo en otro fichero punto p 74 00:07:52,149 --> 00:07:56,970 vale y voy a ir trabajando de esa manera vamos a crearnos nuestra clase para 75 00:07:56,970 --> 00:08:04,129 crearnos nuestra clase creó otro fichero y le voy a llamar pues post class ventana 76 00:08:06,209 --> 00:08:08,990 principal punto 77 00:08:11,449 --> 00:08:19,649 vale a ver si me lo crea ahí está vale entonces qué es lo que hemos hecho lo primero 78 00:08:19,649 --> 00:08:29,730 en mainpay importar esa librería vale yo de todas formas vamos a comentar esto 79 00:08:32,210 --> 00:08:33,549 vamos a ponerle 80 00:08:36,970 --> 00:08:47,509 ejercicio examen primera evaluación segundo 81 00:08:47,509 --> 00:09:18,429 Hoy es el 17 de diciembre de 2023. Mario Santos. Sistemas de gestión empresarial. 82 00:09:18,429 --> 00:09:25,370 vale bueno yo me empiezo a hacer mis comentarios vale entonces lo primero que hacemos lo que 83 00:09:25,370 --> 00:09:36,990 decíamos importe tkinter as tk vale exactamente igual que en el otro fichero la primera línea 84 00:09:36,990 --> 00:09:46,929 vale importe tkinter as tk vale ya lo tengo vale aquí ahora lo que tengo que hacer es una clase 85 00:09:46,929 --> 00:10:07,710 Entonces, para hacer esta clase, siempre empezamos con clase. Esto ya me define una clase. Vale. El nombre de la clase. Vamos a llamarle ventana principal. Paréntesis, paréntesis. Esta es mi clase. Vale. 86 00:10:07,710 --> 00:10:31,629 Ahora, voy a heredar desde el alias que he puesto, ¿vale? De tk, minúscula, punto, tk. Estoy heredando tk, punto, tk. ¿Qué quiere decir eso? Que esta clase, la instancia que genere de esta clase va a ser toda esa ventana, ¿vale? 87 00:10:31,629 --> 00:10:45,730 Por eso en las clases habéis trabajado con el this, en este caso en Python es con el self, porque hacemos referencia a nosotros, ¿vale? A esa instancia, a esta clase. 88 00:10:45,730 --> 00:11:06,669 Entonces, es muy importante estar trabajando todo el tiempo con el self, ¿vale? Vamos a poner aquí clase principal de, bueno, de creación de ventana, ¿vale? 89 00:11:06,669 --> 00:11:16,850 clase principal de creación de ventana vale bueno como sabéis cuando yo genero una clase esa clase 90 00:11:16,850 --> 00:11:24,309 tiene un constructor y en python como no puede ser de otra manera pues lo mismo vale entonces 91 00:11:24,309 --> 00:11:32,389 lo primero que hago es crearme ese constructor ese constructor es un de guión bajo guión bajo 92 00:11:32,389 --> 00:11:47,690 dos guiones bajos, init, guión bajo, guión bajo, paréntesis, paréntesis, así se le llama al constructor en las clases en Python, ¿vale? 93 00:11:48,149 --> 00:11:58,389 Y como es un dev, pues le pongo dos puntos, ¿vale? Lo que tengo que pasar siempre a las funciones, a los métodos que estoy declarando 94 00:11:58,389 --> 00:12:04,110 declarando dentro de la clase que esté generando, en este caso dentro de la clase ventana principal, 95 00:12:04,830 --> 00:12:11,049 siempre es self, ¿vale? Porque siempre, porque os tenéis que acordar de que estamos trabajando 96 00:12:11,049 --> 00:12:16,509 con una instancia de esta clase, ¿vale? Y estamos haciendo referencia siempre a esa instancia. 97 00:12:17,269 --> 00:12:26,049 Bueno, hay otra cosa que es importante, que es que cuando heredo de otra clase, hay que hacer 98 00:12:26,049 --> 00:12:32,990 referencia al constructor de la otra clase vale entonces si no le hacéis esa 99 00:12:32,990 --> 00:12:37,429 referencia nos saltará un error de redundancia 100 00:12:37,429 --> 00:12:41,649 esto os tenéis que acordar siempre entonces para hacer referencia a ese 101 00:12:41,649 --> 00:12:48,389 constructor es el súper paréntesis paréntesis punto init 102 00:12:48,389 --> 00:12:54,990 guión bajo guión bajo y ni guión bajo guión bajo vale esto está haciendo 103 00:12:54,990 --> 00:13:03,730 referencia a la al constructor de la clase de la que heredó súper vale que 104 00:13:03,730 --> 00:13:12,870 este cap el alias tk con tk vale vale esto ya me está haciendo una 105 00:13:12,870 --> 00:13:18,090 instancia de esta clase que es la ventana pero si yo no pongo nada más y 106 00:13:18,090 --> 00:13:25,649 yo vengo al main y le digo ahora le digo de éste 107 00:13:25,649 --> 00:13:34,110 en clase ventana principal import ventana principal vale le estoy 108 00:13:34,110 --> 00:13:41,090 diciendo desde este fichero desde clase ventana principal pay importa perdón no 109 00:13:41,090 --> 00:13:48,129 clase desde el fichero de python importa la clase ventana principal vale dentro 110 00:13:48,129 --> 00:13:52,470 de este fichero de class ventana principal punto p y podría tener 111 00:13:52,470 --> 00:13:59,409 definidas varias clases vale entonces yo tengo como primer paso 112 00:13:59,409 --> 00:14:05,350 es el segundo paso igual que antes me declaró mira mi variable que va a hacer 113 00:14:05,350 --> 00:14:12,190 referencia a esa instancia vale y llamó a ventana principal 114 00:14:12,190 --> 00:14:17,529 para el disparates vale entonces 115 00:14:17,529 --> 00:14:25,710 En ese momento, en esta línea, es donde yo he creado la instancia, la instanciación de esa ventana. 116 00:14:25,970 --> 00:14:39,570 Y como antes, esto en algún lado tiene que aparecer, tienes que decirle que me lo redibuje en cada loop, en cada vuelta en la que interpretamos el código. 117 00:14:39,570 --> 00:14:55,230 Vale, total, que ahora tenemos este main que llama a un fichero e importa una clase que hemos creado dentro del fichero, lo asignamos a esta variable, lo referenciamos mediante esta variable y lo redibujamos en cada loop. 118 00:14:55,230 --> 00:15:16,129 Y me he creado esta clase en la que heredo de TK, mejor dicho, heredo el método TK de TKinter, que es el que genera esa ventana, ¿vale? En la que vamos a dibujar los widgets. 119 00:15:16,129 --> 00:15:35,889 Vale, si yo cojo y ejecuto, ya me lo está haciendo. Me está dibujando esa ventana en la posición 0, 0 y con un tamaño que me da por defecto, ¿vale? Con el título TK. Bueno, entonces, esto nos está funcionando, perfecto. 120 00:15:35,889 --> 00:16:01,669 Vale, entonces ahora lo mismo que hemos hecho antes, vamos a ir haciéndolo aquí. Yo podría poner, en este caso, quiero hacer referencia a la propiedad Geometry. La propiedad Geometry es de la ventana y antes poníamos root.geometry y le pasábamos ese tamaño y esa posición. 121 00:16:01,669 --> 00:16:23,090 ¿Vale? Aquí no puedo poner root porque root pertenece, es una variable que pertenece a main. Insisto, aquí la ventana es la propia instancia, ¿vale? Por eso, esa propia instancia es la que paso en el self, es la que paso en el constructor como self, ¿vale? 122 00:16:23,090 --> 00:16:31,330 entonces ese self, le digo que self.geometry 123 00:16:31,330 --> 00:16:36,029 y ahora se lo ponemos aquí, me parece que eran 400 por 124 00:16:36,029 --> 00:16:41,750 200, vamos a poner 500 125 00:16:41,750 --> 00:16:45,490 y aquí más 126 00:16:45,490 --> 00:16:51,480 posición 200 127 00:16:51,480 --> 00:16:55,279 más 250 128 00:16:55,279 --> 00:17:03,259 este no así vale le pasó esa string que más le he pasado antes el ser punto el title 129 00:17:05,779 --> 00:17:14,660 examen segundo de dame qué más le he pasado el recibo 130 00:17:14,660 --> 00:17:31,940 está igual vale y el recibo le hemos dicho que es falso para hacerlo más ancho y falso para hacerlo 131 00:17:31,940 --> 00:17:41,200 más alto y creo que ya lo así lo antes lo he dejado vale entonces fijaros como leído poniendo 132 00:17:41,200 --> 00:17:49,799 los mismos llamando a los mismos métodos de tk vale pero insisto que como es una instancia con 133 00:17:49,799 --> 00:17:57,900 el self vale si esto lo ejecutó aquí la tengo la ventana con su título con su 134 00:17:57,900 --> 00:18:03,660 tamaño que no es escalable vale y ya tenemos hecho en nuestro primer paso que 135 00:18:03,660 --> 00:18:10,900 es la creación de la ventana muy bien ahora 136 00:18:10,900 --> 00:18:17,039 pues una de uno de los axiomas de la programación es 137 00:18:17,039 --> 00:18:27,200 poder reutilizar el código vale entonces para reutilizar el código podemos coger y decir bueno 138 00:18:28,539 --> 00:18:38,700 quiero poder mandar el ancho el alto la posición en x en y el título como parámetro de entrada 139 00:18:38,700 --> 00:18:45,420 esta clase vale entonces es importante también que os acordéis que 140 00:18:46,579 --> 00:18:52,940 los parámetros de entrada a una clase se reciben en el init en el constructor 141 00:18:52,940 --> 00:18:55,740 jamás 142 00:18:57,660 --> 00:19:03,599 vale entonces vamos a pasarle como parámetro de entrada a la clase todos 143 00:19:03,599 --> 00:19:08,980 estos datos para poder reutilizar esta clase cuando nosotros queramos vale y un 144 00:19:08,980 --> 00:19:13,279 poco lo que os comentaba nunca se reciben los parámetros de entrada desde 145 00:19:13,279 --> 00:19:19,480 donde estoy definiendo la clase se reciben los recoges desde el constructor 146 00:19:19,480 --> 00:19:25,880 vale entonces en este caso voy a tener un parámetro que es el 147 00:19:25,880 --> 00:19:28,279 ancho 148 00:19:29,359 --> 00:19:35,269 el alto 149 00:19:35,269 --> 00:19:41,740 Y la posición en X y la posición en Y. 150 00:19:43,279 --> 00:19:58,359 Vale, esto es lo que recibiría y aquí pondríamos, pues ese ancho, ese alto, vale, entonces esto lo pasamos mediante el tanto por ciento de, 151 00:19:58,359 --> 00:20:05,440 para decirle que le voy a pasar aquí un parámetro que es un valor un número 152 00:20:05,440 --> 00:20:11,420 vale aquí es un tanto por ciento de aquí es un tanto por ciento de 153 00:20:11,420 --> 00:20:18,420 y aquí es un tanto por ciento de y aquí le digo qué parámetros son esos que le 154 00:20:18,420 --> 00:20:22,960 voy a pasar que en este caso es way 155 00:20:22,960 --> 00:20:28,440 Es la altura, es X y es Y. 156 00:20:28,859 --> 00:20:37,460 Vale, fijaros como cuando he hecho mención a estos parámetros, aquí ya no están en un gris más claro, ¿vale? 157 00:20:37,480 --> 00:20:38,980 Porque ya lo estáis utilizando. 158 00:20:39,700 --> 00:20:42,059 Bueno, en el constru... Uy, esto está mal. 159 00:20:42,640 --> 00:20:44,759 Perdón. Ah, no, no, no, no, sí, está bien. 160 00:20:44,759 --> 00:21:00,720 En el constructor, lo que se suele hacer es, por si vamos a usar estas variables en el resto de métodos de esta clase, se suele pasar estas variables a variables de clase. 161 00:21:00,720 --> 00:21:21,039 Entonces, se suele poner aquí el self.way, esto es igual a, vale, aquí, hago lo mismo con todas. 162 00:21:21,579 --> 00:21:31,000 Esto solo es si quiero usar estas variables en otros métodos de esta clase. 163 00:21:31,000 --> 00:21:33,019 vale, si no 164 00:21:33,019 --> 00:21:34,819 pues no os hace falta 165 00:21:34,819 --> 00:21:36,640 pero yo creo que como 166 00:21:36,640 --> 00:21:39,119 norma 167 00:21:39,119 --> 00:21:40,319 está bien que lo hagáis 168 00:21:40,319 --> 00:21:41,740 self.x 169 00:21:41,740 --> 00:21:44,900 y así os vais quitando 170 00:21:44,900 --> 00:21:46,000 de problemas 171 00:21:46,000 --> 00:21:50,349 entonces aquí lo que voy a usar 172 00:21:50,349 --> 00:21:52,329 es estas mismas variables pero con 173 00:21:52,329 --> 00:21:52,789 self 174 00:21:52,789 --> 00:21:54,809 self 175 00:21:54,809 --> 00:21:58,160 self 176 00:21:58,160 --> 00:22:07,539 vale, ya tengo 177 00:22:07,539 --> 00:22:09,160 todas esas variables 178 00:22:09,160 --> 00:22:18,220 que se van a convertir en un string en mi clase las he recibido las he recibido en el constructor 179 00:22:18,220 --> 00:22:28,160 tengo la referencia al constructor de la clase de la que heredó vale y en principio ya estaría 180 00:22:28,160 --> 00:22:33,940 bien bueno en principio no porque también hemos dicho que vamos a pasar este string vale entonces 181 00:22:33,940 --> 00:22:44,259 vamos a pasar ese string, ese string lo pasamos como title, por ejemplo, esto le vamos a llamar 182 00:22:44,259 --> 00:23:02,950 self.title, es igual a title, y aquí pues le paso el self.title, ¿vale? Vale, y entonces 183 00:23:02,950 --> 00:23:08,410 me voy a mi clase principal y aquí ahora le tengo que empezar a pasar todos estos 184 00:23:08,410 --> 00:23:16,990 parámetros bueno alguna cosa que os pasa a alguno de vosotros algunos de vuestros compañeros de 185 00:23:16,990 --> 00:23:28,990 promociones anteriores o vale es que dices bueno aquí hay 1 2 3 4 5 6 parámetros eso no es cierto 186 00:23:28,990 --> 00:23:37,029 vale el self no lo contéis como un parámetro de entrada el self es el que está haciendo referencia 187 00:23:37,029 --> 00:23:44,089 a la instanciación vale ser a la instanciación el resto si son parámetros de entrada pero el 188 00:23:44,089 --> 00:23:51,710 self no de hecho si yo cojo y me declaro aquí otra función que puede ser en cajas 189 00:23:53,269 --> 00:24:04,329 vale haciendo referencia a los frames que vamos a crear dentro aquí le digo también que heredo 190 00:24:04,329 --> 00:24:11,470 que vamos a trabajar sobre esta instancia 191 00:24:11,470 --> 00:24:13,349 si yo no pusiera este self 192 00:24:13,349 --> 00:24:17,069 no tendría acceso a los valores 193 00:24:17,069 --> 00:24:21,210 de todas las variables que hemos declarado con el self. 194 00:24:21,710 --> 00:24:23,970 ¿Vale? Todas las variables que empiezan por self. 195 00:24:24,309 --> 00:24:26,970 o todas las funciones que tengan self 196 00:24:26,970 --> 00:24:31,369 si yo no le meto a esa función, a este def, a este método 197 00:24:31,369 --> 00:24:50,269 Este self no tendría acceso, ¿vale? Entonces siempre a los métodos de una clase le pasamos el self, ¿vale? Para decirle al sistema que estamos haciendo referencia a todo lo que es, a todo lo que forma parte de esa instanciación, ¿vale? 198 00:24:50,269 --> 00:24:57,529 este pas no es nada más pues para crear un método en blanco y ya está no lo voy a usar ni nada pero 199 00:24:57,529 --> 00:25:05,049 para que no me salte ningún error bueno total que tenemos esto así ahora nos vamos al main y 200 00:25:05,049 --> 00:25:12,609 en ventana principal ahora tenemos que pasarle esos parámetros vale estos parámetros serán me 201 00:25:12,609 --> 00:25:29,099 parece que era 500 de ancho 200 de alto no sé ya no me acuerdo vale pero 202 00:25:29,099 --> 00:25:38,079 imaginaros es algo así examen segundo de dan 203 00:25:38,079 --> 00:25:48,039 vale le he pasado el way la x y el title vale como parámetro de entrada insisto 204 00:25:48,039 --> 00:25:53,859 estos parámetros los recogemos desde el constructor desde el init y ya empieza a 205 00:25:53,859 --> 00:26:00,400 jugar con los diferentes valores para crear esa ventana vale lo 206 00:26:00,400 --> 00:26:05,220 ejecutamos y nos ha dado algún problema vamos a 207 00:26:05,220 --> 00:26:12,819 a ver bueno nos está dando este error de que el string no es llamable de dónde viene ese problema 208 00:26:14,619 --> 00:26:22,099 ayer pasado un título le he puesto lo declarado lo he metido lo he guardado dentro de la variable 209 00:26:22,099 --> 00:26:29,720 de clase es el punto title pero no me he dado cuenta de que es el punto title es un método 210 00:26:29,720 --> 00:26:33,759 de tk, es para poner el título, entonces estoy usando 211 00:26:33,759 --> 00:26:38,299 un método 212 00:26:38,299 --> 00:26:42,279 de la clase de la que heredo, como si fuera una variable 213 00:26:42,279 --> 00:26:46,000 vale, entonces le estoy volviendo a python un poco loco 214 00:26:46,000 --> 00:26:49,299 le vamos a cambiar el nombre, le vamos a poner aquí 215 00:26:49,299 --> 00:26:53,619 mi title, vale 216 00:26:53,619 --> 00:26:57,839 ahí guardo title, y aquí lo que voy a llamar es 217 00:26:57,839 --> 00:27:07,940 a mi title, vale, esto nos debería funcionar, vamos a verlo, si no nos funciona, bueno, 218 00:27:08,039 --> 00:27:13,480 si nos funciona aquí está, vale, a lo mejor, bueno, ya tenemos el título, nos funciona 219 00:27:13,480 --> 00:27:17,660 todo, no se rescala, nos lo pone en la posición que le hemos dicho, lo vamos teniendo todo, 220 00:27:17,779 --> 00:27:27,319 perfecto, vale, a lo mejor es conveniente usar las funciones para asegurarnos de que 221 00:27:27,319 --> 00:27:35,299 texto vale entonces con el str paréntesis y cerrar paréntesis esto es 222 00:27:35,299 --> 00:27:38,900 texto porque la estamos pasando cuando ya vamos a la clase como un stream o sea 223 00:27:38,900 --> 00:27:44,240 no puede ser nada más que texto pero a lo mejor es buena costumbre por si acaso 224 00:27:44,240 --> 00:27:52,259 usar ese tipo de funciones sin str float las típicas para pasear los datos que 225 00:27:52,259 --> 00:27:56,380 vosotros ya las habéis usado un millón de veces vale entonces bueno pues 226 00:27:56,380 --> 00:28:02,799 tenemos esto lo ejecutamos y hasta aquí nos funciona perfectamente vale pues ya 227 00:28:02,799 --> 00:28:08,079 tenemos nuestra clase tenemos nuestro fichero principal que va a llamar a 228 00:28:08,079 --> 00:28:12,000 nuestra clase pasándole los parámetros tenemos 229 00:28:12,000 --> 00:28:17,559 esta clase que nos crea la ventana en la que recibe los parámetros desde el 230 00:28:17,559 --> 00:28:22,819 constructor en la que hace mención al constructor de la clase heredada en este 231 00:28:22,819 --> 00:28:30,000 caso de tkinter.tk vale el método que nos dibuja esa ventana 232 00:28:30,000 --> 00:28:35,380 que guardo los parámetros de entrada en 233 00:28:35,380 --> 00:28:40,039 variables de la instancia para luego poder hacer referencia a estas variables 234 00:28:40,039 --> 00:28:45,819 desde cualquiera de las métodos de las funciones que estoy creando 235 00:28:45,819 --> 00:28:51,140 y ya está este vídeo lo voy a dejar aquí para que no se hagan muy largos voy a ir 236 00:28:51,140 --> 00:28:58,200 paso a paso haciendo los diferentes vídeos vale y este lo dejo aquí en el siguiente 237 00:28:58,200 --> 00:29:06,680 me pongo a crear las diferentes cajas vale los tk frame un saludo hasta luego