✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/python-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Python👉 www.pildorasinformaticas.es/course/python-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Para que el scroll bar quede incorporado en el widget text, se deja en la misma columna, se le asigna el mismo padding, y en el parámetro sticky se asigna el valor "nse". Ejemplo: textComentarios = Text(miFrame, width=16, height=5) textComentarios.grid(row=4, column=1, pady=10) scrollYComentarios= Scrollbar(miFrame, command=textComentarios.yview) scrollYComentarios.grid(row=4, column=1, pady=10, sticky="nse") textComentarios.config(yscrollcommand=scrollYComentarios.set)
Gracias David!! n_n Excelente ayuda, pero quería anotar un detalle: El scrollbar, al estar "dentro" del Text, lo que hace de paso es tapar los caracteres que se escriban en él, o sea que la barra se está superponiendo en el lado este del cuadro de texto :''v y te tapa 1 o 2 caracteres... Quería saber si conoces alguna forma de arreglar eso. Buenas noches!
@@renatopatow1304 Buenas, quizas lo mejor seria dejar el scroll en la columna 2, agregar al textocomentario , sticky="e", padx=0 (en grid ) y eso : el codigo seria: textoComentario=Text(miFrame, width=16, height=5) textoComentario.grid(row=4, column=1, sticky="e", padx=0) scrollVert=Scrollbar(miFrame, command= textcoment.yview) scrollVert.grid(row=4, column=2, sticky="nsew", padx=0)
Felicidades por tus videos. De no tener ni idea he conseguido hacer mis apps de android gracias a tus cursos de Java y Android. Cuando me preguntan como he aprendido los mando directamente a "pildoras informáticas"!!!
Vengo a hacer mi pequeña aportación porfavor lean. Si abajo de; "from tkinter import *" ponemos lo siguiente: "import tkinter.scrolledtext as scrolledtext" Podremos crear un nuevo widget que es lo mismo que el Text pero ya viene con scroll integrado y configurado. Este seria un ejemplo de como usarlo: - cajaTexto = scrolledtext.Scrolledtext(miFrame) - cajaTexto.config(width=15, height=5) - cajaTexto.grid(row=4, column=1) Pero hay que tener mucho ojo ya que este se usa como un metodo, no con la manera tradicional de los widgets. Es scrolledtext.Scrolledtext, tal como lo escribo. Es una aportación para quienes no quieran integrar un scrollbar y configurarlo manualmente. Gracias.
Muchas gracias amigo!! Me funcionó y me salvaste porque haciendo lo del video me daba un error. Lo escribo por si alguien me lo puede explicar. *AttributeError: 'NoneType' Object has no attribute 'yview'* Mi código era este 👇 ```texto= Text(miFrame, width=15, height =4).grid(row =3, column=1) scrollVert = Scrollbar(miFrame, command=texto.yview)``` 👆esta última linea disparaba ese error, y no le veo nada mal.
Si tienen un error con *yview* , es probable que hayan colocado el grid luego de haber creado el TextoComentario, de esta forma: *textoComentario=Text(miFrame, width=16, height= 5).grid(row=4, column=1)* , recomiendo utilizar la forma que usa el profe en el vídeo: *textoComentario=Text(miFrame, width=16, height= 5)* *textoComentario.grid(row=4, column=1)* Saludos profe, a seguirle metiendo ganas al estudio, compañeros!
Como un aporte para el scroll bar, yo hice lo siguiente: Debajo de "from tkinter import *" importo lo siguiente "from tkinter import scrolledtext". Posteriormente creo el text con código como sigue: textoComentario=scrolledtext.ScrolledText(miFrame,width=16, height=5) textoComentario.grid(row=4, column=1) Así ya quedo en mi caso. Espero les sirva a algunos. PD: Excelente curso del profe Juan!
Estimado Juan, estoy siguiendo tus videos, en este momento estoy viendo tus videos de JAVA y me queda una duda, Hay Lugar en la plaza de Madrid para hacerte un monumento????
Hermano, ¡no sabes del apuro que me estás sacando! Muchísimas gracias por tu dedicación y por colocar este material público. Un abrazo fuerte desde México.
Por casualidad he caído en tu canal y solo lamento no haberlo descubierto antes. Es una maravilla, explicas fenomenal. Quizá en algún comentario alguien ya lo ha puesto, pero lo comparto por si acaso. He trasteado un poco con el código y he encontrado la manera de colocar el scrollbar de forma que quede bonito. Si metemos el Text y el Scroll en la misma posición del grid, lo único que hay que hacer es que el Text tenga width de 2 pixles menor (lo que ocupa el scrollbar) que el resto de etiquetas y colocarlo a la izquierda(w) y el scrollbar a la derecha(e), así parece que está dentro y queda fenomenal: textComentario=Text(miFrame, width="15", height="5") textComentario.grid(row=4, column=1, padx=2, pady=2, sticky="w") scrollVert=Scrollbar(miFrame, command=textComentario.yview) scrollVert.grid(row=4,column=1, sticky="nse") textComentario.config(yscrollcommand=scrollVert.set) Un saludo.
Para solucionar el problema del scrollbar, encontre el widget ScrolledText es igual que Text pero con la scrollbar ya añadida. Gracias profe por este curso
¡1000 videos!, se dicen fácil, pero la verdad no cualquiera lo logra. Ojalá y este canal siga por muchos años más ya que es de lo mejor , no solo en UA-cam, sino en todo Internet.
¡Cuanta tenacidad, conocimiento y generosidad! Felicidades plenas para ti Juan, como siempre lo he dicho, aparte de excelente profesor, eres sobre todo un buen ser humano esparciendo educación al mundo, te admiro buen amigo. Que llegue más dicha y abundancia a tu vida.
Nunca he dejado de seguirte, de compartir tus videos y de recomendar siempre que puedo que vengan a tu canal, aqui ando calladito mi buen amigo, como te dije ya hace un buen tiempo, que iba a caminar este sendero bajo tu guía, y aquí sigo.
Hola muchas gracias por estos maravillosos video tutoriales habia buscado cursos para aprender de Python sin embargo no se exploraba mucho y este curso me ha caido del cielo. Muchas gracias por tu paciencia y disposición para entregarnos tu conocimiento.
1000 videos!!!!! felicitaciones a nosotros! somos los principales beneficiados de tus 1000 o más vídeos que llevas ahora mismo, así que felicitaciones a nosotros y a ti, mil o más gracias!!!!
Es febrero de 2020, siempre había visto vídeos de programación y siempre me aburría el inicio porque hablaban de lo mismo, operaciones elementales y tipos de variables. Con tan solo unos cuantos vídeos sobre cómo hacer una interfaz gráfica me he emocionado por completo. Gracias por todo.
Maestro Juan , Felicidades por sus 1000 videos ... Y ojalá el canal siga creciendo , exito para usted y sus proyectos ... Merecido lo tiene por todo lo que nos ha enseñado a nosotros.
Hola, Juan. Antes que nada, te felicito por el excelente aporte que le hacés a la comunidad, tu canal me ha ayudado mucho; y puedo apostar, sin miedo a equivocarme, que cada curso tuyo es muchísimo más profundo que cualquier certificación en el mercado. Para quien gusta el saber o quien busca perfeccionarse, este canal siempre es mi recomendado. Te molesto por lo siguiente: Estoy teniendo un problema al momento de cargar un archivo .xlsx y convertirlo en un dataframe con pandas. El fin sería unificar diferentes archivos de excel en un mismo dataframe. Logro cargar el archivo y guardar su path en una label o un textbox y en una variable, el problema es que al momento de dar la instrucción pd.read_excel no me reconoce el conenido de la variable como un path. Al imprimir la variable en pantalla me devuelve el path perfectamente. Te dejo las lineas de codigo a ver si se te ocurre qué estoy haciendo mal: vari1 =' ' def cargar1(): archivo1= str(filedialog.askopenfilename(title="Abrir", filetypes=(("Archivos De Excel", "*.xlsx"),("Archivos CSV", "*.csv"))))
var1= archivo1.replace('/', '\\') vari1= str(var1) print(vari1) def unificar(): #### esta función es más larga, y cargaría varios excel, pero aún no puedo cargar ni uno, así que la dejo simplificada data1 = pd.read_excel(vari1) print(data1) botoncarga1=Button(frame1, text="Archivo n°1:", command=cargar1) botoncarga1..grid(row="0", column="0") textoArch1=Label(frame1, text=vari1).grid(row="0", column="1") botonconv= Button(frame1, text="Unificar y convertir", command=unificar).grid(row="9", column="0") Muchas gracias!
Enhorabuena Juan!! Has podido convertir este maravilloso canal en la meca de la programación para cualquier hispanohablante!! Felicidades y a por los siguientes mil tutoriales!! Gracias por tu gran coraje y por todos tus esfuerzos para compartir el conocimiento. Gracias y mil gracias campeón. Eres el mejor! "Todos tenemos sueños. Pero para convertir los sueños en realidad, se necesita una gran cantidad de determinación, dedicación, autodisciplina y esfuerzo.-Jesse Owens."
En hora buena mi estimado, felicidades por tu primer K, esperamos que sigas compartiendo tus conocimientos y experiencias de manera desinteresada con todos los que te seguimos a través de estas tecnologías, donde la distancia no es un límite para la enseñanza de buena calidad.Gracias y saludos desde Venezuela.
Felicitaciones (retrazadas) por los 1.000 vídeos....! además quiero agradecerte por estos cursos....el año pasado comencé el de Java (64...) y ahora estoy en el de Python (46) y SQL (14), realmente son extraordinarios...
Primero que nada felicitaciones por todos tus videos! Sos un Crack! Muchisimas gracias por tu tan valioso aporte! Me re ayudaste a hacer un proyecto sencillo que estoy creando un programa para exraer audio a los videos (ya que descargaba mucho de youtube y me quedaban los videos ahi jaja) Con respecto a la barra de desplazamiento... Se me ocurrio poner un Text arriba de una imagen con el mismo fondo atras, la imagen sería mas ancha cosa que se pueda colocar mediante coordenadas la barra de desplazamiento a la derecha del text pero creando la ilucion optica de que en realidad esta adentro (cuando solo esta a la derecha) Si lo hago mas tarde te mando una captura jaja
Me pongo al día con este curso en el video 1000 de tu canal, enhorabuena!! He devorado el curso en 3 semanas, muchas gracias por el esfuerzo! Como sugerencias para este curso me gustaría ver una parte con librerías tan potentes como numpy y matplotlib. Espero que lo tengas en cuenta, saludos!
Pues a mi me quedó bien el scrollbar vertical , lo que hice fue crear otro Frame solo y exclusivamente para introducir el Text y el Scrollbar y lo hice usando en vez de el posicionamiento grid() que lo use para el el primer Frame en este Frame secundario usé el posicionamiento pack() Y quedó muy bien. . O sea meter un Frame con posicionamiento pack() para el text y scroll en otro Frame con posicionamientos grid(). Un saludo y gracias por sus vídeos
no se si ya lo hayan comentado, pero el scroll si se puede colocar dentro del mismo cuadro de texto, poniendo en su grid la misma columna donde está el cuadro de texto y colocandola al lado derecho con un sticky="nse"
@@ragnarlodbrok4005 Muchas gracias! y queria preguntarte, como puedo ubicar entonces el label para que no me quede corrido el cuadro de texto? Ya intente darle padx diferentes pero me queda corrido respecto a los otros entry`s
gracias por este video y tus demas tutos. En lo personal pienso que es bastante complicado entender la documentacion de python. La documentacion de java considero que estaba mas ordenado, aunque, es bastante.
Hola Juan, muuuuuchas gracias por tu esfuerzo por ayudarnos a intentar aprender a programar ;) Me gustaría creer que puedo hacer un aporte tratando de ayudar con mi granito de arena a todo lo que tú nos das. En relación al "scrollbar" y si se puede posicionar en la misma columna del cuadro de comentarios, yo lo he conseguido haciendo los pasos que vos enseñas pero solo cambiando un parámetro donde usamos el metodo .grid: " .grid(row=4, column=1, sticky="nse") "; simplemente quitando el punto cardinal " w " del código, y me funsióna. cuadroComentarios=Text(miFrame, width=20, height=5) cuadroComentarios.grid(row=4, column=1, padx=15, pady=15) cuadroComentarios.config(bg="light grey", fg="blue", font="Arial", padx=10, pady=10) scrollVert=Scrollbar(miFrame, command=cuadroComentarios.yview) scrollVert.grid(row=4, column=1, sticky="nse") cuadroComentarios.config(yscrollcommand=scrollVert.set) También me surge la duda de cual es la diferencia entre hacer: import tkinter -----» (que NO me funciona) y hacer como tú lo enseñar: from tkinter import * ¿Es que no estoy importando de las dos maneras lo mismo? Otra vez muchas gracias por todo. Saludos, y espero que sirva ;)
Cuando le das form tkinter import * impotra todala biblioteca completa y no tienes que hacer referencia a ella nuevamente, si lo llamas "import tkinter" debes llamar a la biblioteca en cada función o método que utilices de la misma, también puedes llamarla "import tkinter as Tk" y así solo escribirías tk antes de cada función en ves del nombre completo de la biblioteca
Critica Constructiva Este Video Es Buenisimo Pero En su momento Pudiste importar en un archivo nuevo todo lo utilizado en el tutorial haci seria un repaso y se te hubiera entendido mejor en un archivo mas ordenado pero Buen Video Eres El Mejor
Según nuestro querido ChatGPT, una forma de incrustar el Rollbar al cuadro de texto es de la siguiente forma: import tkinter as tk # Crear la ventana principal root = tk.Tk() root.title("Ejemplo de Text con Scrollbar") # Crear un marco para organizar el Text y el Scrollbar frame = tk.Frame(root) frame.pack(expand=True, fill='both') # Crear el widget Text text_widget = tk.Text(frame, wrap="word") # wrap="word" para ajustar por palabras text_widget.pack(side="left", expand=True, fill="both") # Crear el Scrollbar scrollbar = tk.Scrollbar(frame, orient="vertical", command=text_widget.yview) scrollbar.pack(side="right", fill="y") # Vincular el Scrollbar al widget Text text_widget.config(yscrollcommand=scrollbar.set) # Agregar algo de texto de ejemplo for i in range(100): text_widget.insert("end", f"Línea {i + 1} ") # Iniciar el bucle principal de la aplicación root.mainloop() Explicación del código: Marco (Frame): Se utiliza para organizar el Text y la Scrollbar juntos. Text: El widget de texto es donde el usuario puede escribir o leer. Scrollbar: Se crea con orientación vertical (orient="vertical") y se vincula al desplazamiento vertical del widget Text mediante command=text_widget.yview. Vinculación: La barra de desplazamiento informa al widget Text cuando el usuario la mueve mediante command. A la vez, el widget Text actualiza la posición de la barra con yscrollcommand=scrollbar.set.
Si desordenamos el código como se ha hecho en el video, cuando queremos desplazarnos con el tabulador para pasar al siguiente campo de texto, nos lleva al siguiente campo según las líneas de código y no según están en la interfaz grafica.
Efectivamente Python sigue el orden del código y no el de la interfaz para establecer el foco. Se soluciona con lift() y focus_set(). Ejemplo:import tkinter as tk root = tk.Tk() entry2 = tk.Entry(root) entry2.grid(row=1, column=0) entry1 = tk.Entry(root) entry1.grid(row=0, column=0) entry3 = tk.Entry(root) entry3.grid(row=2, column=0) # Configurar manualmente el foco entry1.lift() # Levanta `entry1` en la jerarquía de foco entry1.focus_set() # Establece el foco inicial root.mainloop() ¡Saludos!
@@pildorasinformaticas gracias Juan! Odie la programacion en el curso medio que hice hace 12 años, hoy estoy focus y con ganas de aprender cada dia mas y eso es gracias a tus cursos, un abrazo!
Como puedo hacer para tomar un dato escrito por el usuario en un cuadro de texto y usar ese dato para realizar operaciones, por ejemplo, una interfaz gráfica que resuelva la formula general, pida valores A, B y C y un botón de resultado, como hago yo para que esos valores abc que puso el usuario queden registrados como variables que pueda manipular yo después para obtener el resultado
Buenas, una pregunta con mi codigo, me preguntaba como se realizaria un metodo para que al momento de yo presionar un boton, este me abra el ejecutable de otro archivo python, algo asi como una segunda ventana que se abre desde una ventana principal, por medio de un boton, gracias
no me termina de convencer esta forma de armar ventanas, hay alguna libreria mas visual? Por ejemplo en android tengo vistas xml que voy editando y me parece mucho mas comodo.
no entendi la parte en la que pone "Text(miFrame, width=16, height=5)" y el text se queda de esas medidas, en que undades está definido? ya que pixeles obiamente no son
Buenas en los widget Text al escribir cuando llegas al final se parten las palabras si no caben, esto hay alguna forma de que si no cabe la palabra baje a la siguiente linea automáticamente, por cierto ojala todos los profesores supieran explicar igual que tu, gracias por dedicar parte de tu tiempo a realizar estos maravillosos cursos
FELICIDADES por los tutoriales, han Sido de gran ayuda para mis proyectos...... Tengo una duda y espero me pueda aclarar por este medio..... Quise añadir un Scrollbar y me lanza un error que dice name ScrollBar un not definet..... No encuentro como solucionarlo.
a mi no me sale usar las "columnas" porque se me mueven todos los elementos pero una consulta, si uso "place" para ubicar basicamente el texto y la caja de comentarios, como puedo hacer para agregar el "nsew" ? porque en el ".place" no me deja :c
Seria interesante que dejaras un link a los programas terminados en cada video si no es mucha molestia, mas que nada para usarlos de ejemplo, esto simplificaria las cosas, y evitaría que avance y retroceda el video para ver cada instrucción, es solo una sugerencia. Muy buenos los videos, gracias
✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/python-tutorizado/🚀
🚀 ¿Quieres que te resuelva las dudas de Python👉 www.pildorasinformaticas.es/course/python-tutorizado/ 🚀
💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Para que el scroll bar quede incorporado en el widget text, se deja en la misma columna, se le asigna el mismo padding, y en el parámetro sticky se asigna el valor "nse". Ejemplo:
textComentarios = Text(miFrame, width=16, height=5)
textComentarios.grid(row=4, column=1, pady=10)
scrollYComentarios= Scrollbar(miFrame, command=textComentarios.yview)
scrollYComentarios.grid(row=4, column=1, pady=10, sticky="nse")
textComentarios.config(yscrollcommand=scrollYComentarios.set)
LIke maestro, me funciono mucho mejor como lo escribiste que como lo hizo Juan. Gracias!!
Excelente aporte
Buen aporte, mejora la presentación
Gracias David!! n_n Excelente ayuda, pero quería anotar un detalle: El scrollbar, al estar "dentro" del Text, lo que hace de paso es tapar los caracteres que se escriban en él, o sea que la barra se está superponiendo en el lado este del cuadro de texto :''v y te tapa 1 o 2 caracteres... Quería saber si conoces alguna forma de arreglar eso. Buenas noches!
@@renatopatow1304 Buenas, quizas lo mejor seria dejar el scroll en la columna 2, agregar al textocomentario , sticky="e", padx=0 (en grid ) y eso :
el codigo seria:
textoComentario=Text(miFrame, width=16, height=5)
textoComentario.grid(row=4, column=1, sticky="e", padx=0)
scrollVert=Scrollbar(miFrame, command= textcoment.yview)
scrollVert.grid(row=4, column=2, sticky="nsew", padx=0)
UA-cam debe darle un premio
Felicidades por tus videos.
De no tener ni idea he conseguido hacer mis apps de android gracias a tus cursos de Java y Android. Cuando me preguntan como he aprendido los mando directamente a "pildoras informáticas"!!!
Vengo a hacer mi pequeña aportación porfavor lean.
Si abajo de; "from tkinter import *" ponemos lo siguiente: "import tkinter.scrolledtext as scrolledtext"
Podremos crear un nuevo widget que es lo mismo que el Text pero ya viene con scroll integrado y configurado.
Este seria un ejemplo de como usarlo:
- cajaTexto = scrolledtext.Scrolledtext(miFrame)
- cajaTexto.config(width=15, height=5)
- cajaTexto.grid(row=4, column=1)
Pero hay que tener mucho ojo ya que este se usa como un metodo, no con la manera tradicional de los widgets. Es scrolledtext.Scrolledtext, tal como lo escribo. Es una aportación para quienes no quieran integrar un scrollbar y configurarlo manualmente. Gracias.
Sos un crack bro
Muchas gracias amigo!!
Me funcionó y me salvaste porque haciendo lo del video me daba un error.
Lo escribo por si alguien me lo puede explicar.
*AttributeError: 'NoneType' Object has no attribute 'yview'*
Mi código era este 👇
```texto= Text(miFrame, width=15, height =4).grid(row =3, column=1) scrollVert = Scrollbar(miFrame, command=texto.yview)```
👆esta última linea disparaba ese error, y no le veo nada mal.
amigo 2022 y este truco sigue funcionando excelentemente, muchas gracias :D
Y con un poco de paciencia tambien :
text_comment = Text(mi_frame, width= 13, height= 5)
text_comment.grid(row = 4, column= 1, sticky="w" )
scroll_vert = Scrollbar(mi_frame, command =text_comment.yview)
scroll_vert.grid(row = 4, column= 1, sticky="nse", padx=0)
text_comment.config(yscrollcommand= scroll_vert.set)
Felicidades por los 1000 vídeos!
Gracias !
Si tienen un error con *yview* , es probable que hayan colocado el grid luego de haber creado el TextoComentario, de esta forma: *textoComentario=Text(miFrame, width=16, height= 5).grid(row=4, column=1)*
, recomiendo utilizar la forma que usa el profe en el vídeo:
*textoComentario=Text(miFrame, width=16, height= 5)*
*textoComentario.grid(row=4, column=1)*
Saludos profe, a seguirle metiendo ganas al estudio, compañeros!
Gran dato, muchisimas gracias.
Como un aporte para el scroll bar, yo hice lo siguiente:
Debajo de "from tkinter import *" importo lo siguiente "from tkinter import scrolledtext". Posteriormente creo el text con código como sigue:
textoComentario=scrolledtext.ScrolledText(miFrame,width=16, height=5)
textoComentario.grid(row=4, column=1)
Así ya quedo en mi caso. Espero les sirva a algunos.
PD: Excelente curso del profe Juan!
Que genial! Ya 1000 vídeos de pura sabiduría y enseñanza, Gracias Maestro! Saludos...
7 años del curso y recien lo arranco sos un tipaso pildoras gracias por tanto pienso dejarte este coment cada vez que termine un video mil gracias
bien ahi manito exitos mi bro
Recomendadísimo, esto me ayudó a sacar mi título de ingeniería, salu2
Estimado Juan, estoy siguiendo tus videos, en este momento estoy viendo tus videos de JAVA y me queda una duda, Hay Lugar en la plaza de Madrid para hacerte un monumento????
Kajajajajaja
jajajajjajaj
llegue dos años tarde, pero uno por cada lenguaje.
jajajajaja verdad!!! yo he recomendado tus videos a todos mis colegas.!!!!
Hermano, ¡no sabes del apuro que me estás sacando! Muchísimas gracias por tu dedicación y por colocar este material público. Un abrazo fuerte desde México.
Por casualidad he caído en tu canal y solo lamento no haberlo descubierto antes. Es una maravilla, explicas fenomenal.
Quizá en algún comentario alguien ya lo ha puesto, pero lo comparto por si acaso. He trasteado un poco con el código y he encontrado la manera de colocar el scrollbar de forma que quede bonito. Si metemos el Text y el Scroll en la misma posición del grid, lo único que hay que hacer es que el Text tenga width de 2 pixles menor (lo que ocupa el scrollbar) que el resto de etiquetas y colocarlo a la izquierda(w) y el scrollbar a la derecha(e), así parece que está dentro y queda fenomenal:
textComentario=Text(miFrame, width="15", height="5")
textComentario.grid(row=4, column=1, padx=2, pady=2, sticky="w")
scrollVert=Scrollbar(miFrame, command=textComentario.yview)
scrollVert.grid(row=4,column=1, sticky="nse")
textComentario.config(yscrollcommand=scrollVert.set)
Un saludo.
Para solucionar el problema del scrollbar, encontre el widget ScrolledText es igual que Text pero con la scrollbar ya añadida. Gracias profe por este curso
¡1000 videos!, se dicen fácil, pero la verdad no cualquiera lo logra. Ojalá y este canal siga por muchos años más ya que es de lo mejor , no solo en UA-cam, sino en todo Internet.
Gracias !! Espero que sean muchos más y que me acompañéis en esta aventura como habéis estado haciendo hasta ahora. Un saludo!
Nada mas que decir, tendrias que tener millones de suscriptores porque sos el dios de la programacion y todavia no se te conoce tanto
¡Cuanta tenacidad, conocimiento y generosidad! Felicidades plenas para ti Juan, como siempre lo he dicho, aparte de excelente profesor, eres sobre todo un buen ser humano esparciendo educación al mundo, te admiro buen amigo. Que llegue más dicha y abundancia a tu vida.
Hombre !! Hacía tiempo que no te veía por aquí. Muchas gracias por el comentario como siempre. UN saludo!
Nunca he dejado de seguirte, de compartir tus videos y de recomendar siempre que puedo que vengan a tu canal, aqui ando calladito mi buen amigo, como te dije ya hace un buen tiempo, que iba a caminar este sendero bajo tu guía, y aquí sigo.
Hola muchas gracias por estos maravillosos video tutoriales habia buscado cursos para aprender de Python sin embargo no se exploraba mucho y este curso me ha caido del cielo. Muchas gracias por tu paciencia y disposición para entregarnos tu conocimiento.
Felicidades por el video 1000, sigue asi hasta 10000000000000000, jajaja.
Gracias !! Un saludo
Muchas gracias por todo lo que nos enseñas .
1000 videos!!!!! felicitaciones a nosotros! somos los principales beneficiados de tus 1000 o más vídeos que llevas ahora mismo, así que felicitaciones a nosotros y a ti, mil o más gracias!!!!
Es febrero de 2020, siempre había visto vídeos de programación y siempre me aburría el inicio porque hablaban de lo mismo, operaciones elementales y tipos de variables. Con tan solo unos cuantos vídeos sobre cómo hacer una interfaz gráfica me he emocionado por completo. Gracias por todo.
Maestro Juan , Felicidades por sus 1000 videos ... Y ojalá el canal siga creciendo , exito para usted y sus proyectos ... Merecido lo tiene por todo lo que nos ha enseñado a nosotros.
Muchas gracias Antonio. Un saludo!!
Genio e visto varios cursos, incluso pago, y no están a tu nivel. eres un super genio explicando haces que todo se vea sencillo.
Felicitaciones por los 1000 videos. Ahora debes estar llegando a los 2000. Muchas gracias por tu trabajo y por compartir.
Hola, Juan. Antes que nada, te felicito por el excelente aporte que le hacés a la comunidad, tu canal me ha ayudado mucho; y puedo apostar, sin miedo a equivocarme, que cada curso tuyo es muchísimo más profundo que cualquier certificación en el mercado. Para quien gusta el saber o quien busca perfeccionarse, este canal siempre es mi recomendado.
Te molesto por lo siguiente:
Estoy teniendo un problema al momento de cargar un archivo .xlsx y convertirlo en un dataframe con pandas. El fin sería unificar diferentes archivos de excel en un mismo dataframe.
Logro cargar el archivo y guardar su path en una label o un textbox y en una variable, el problema es que al momento de dar la instrucción pd.read_excel no me reconoce el conenido de la variable como un path. Al imprimir la variable en pantalla me devuelve el path perfectamente.
Te dejo las lineas de codigo a ver si se te ocurre qué estoy haciendo mal:
vari1 =' '
def cargar1():
archivo1= str(filedialog.askopenfilename(title="Abrir", filetypes=(("Archivos De Excel", "*.xlsx"),("Archivos CSV", "*.csv"))))
var1= archivo1.replace('/', '\\')
vari1= str(var1)
print(vari1)
def unificar():
#### esta función es más larga, y cargaría varios excel, pero aún no puedo cargar ni uno, así que la dejo simplificada
data1 = pd.read_excel(vari1)
print(data1)
botoncarga1=Button(frame1, text="Archivo n°1:", command=cargar1)
botoncarga1..grid(row="0", column="0")
textoArch1=Label(frame1, text=vari1).grid(row="0", column="1")
botonconv= Button(frame1, text="Unificar y convertir", command=unificar).grid(row="9", column="0")
Muchas gracias!
Felicidades por tu vídeo 1000 y nunca voy a terminar de agredecer te he seguido desde hace tres años y esperamos nuevos videos hasta pronto
Enhorabuena Juan!!
Has podido convertir este maravilloso canal en la meca de la programación para cualquier hispanohablante!!
Felicidades y a por los siguientes mil tutoriales!!
Gracias por tu gran coraje y por todos tus esfuerzos para compartir el conocimiento.
Gracias y mil gracias campeón.
Eres el mejor!
"Todos tenemos sueños. Pero para convertir los sueños en realidad, se necesita una gran cantidad de determinación, dedicación, autodisciplina y esfuerzo.-Jesse Owens."
Muchas gracias por tu comentario y por los ánimos. Un saludo!!
En hora buena mi estimado, felicidades por tu primer K, esperamos que sigas compartiendo tus conocimientos y experiencias de manera desinteresada con todos los que te seguimos a través de estas tecnologías, donde la distancia no es un límite para la enseñanza de buena calidad.Gracias y saludos desde Venezuela.
Muchas gracias por el comentario y por seguir mis vídeos. Un cordial saludo desde el otro lado del charco
Gracias por todos y cada uno. Soy seguidor fiel desde hace un año Maestro Juan sama.
Felicitaciones por 1000 vídeos ya realizados..y brindar por miles y miles de vídeos mas, gracias por compartirlo.
Genio , lo apoyo desde que tenia 150,000 suscriptores
Pues muchas gracias por tu apoyo. Seguimos adelante ! Un saludo
Muchas gracias por hacer esto gratis, creo que es la clase que mas me ha gustado del curso, me encantó muchas gracias
Felicitaciones (retrazadas) por los 1.000 vídeos....! además quiero agradecerte por estos cursos....el año pasado comencé el de Java (64...) y ahora estoy en el de Python (46) y SQL (14), realmente son extraordinarios...
Muchas gracias por el comentario y por tu fidelidad al seguir mis cursos. Me alegro de que te gusten. Un cordial saludo!
Qué bien explicado! Es una joya este curso
Primero que nada felicitaciones por todos tus videos! Sos un Crack! Muchisimas gracias por tu tan valioso aporte!
Me re ayudaste a hacer un proyecto sencillo que estoy creando un programa para exraer audio a los videos (ya que descargaba mucho de youtube y me quedaban los videos ahi jaja)
Con respecto a la barra de desplazamiento... Se me ocurrio poner un Text arriba de una imagen con el mismo fondo atras, la imagen sería mas ancha cosa que se pueda colocar mediante coordenadas la barra de desplazamiento a la derecha del text pero creando la ilucion optica de que en realidad esta adentro (cuando solo esta a la derecha) Si lo hago mas tarde te mando una captura jaja
Me pongo al día con este curso en el video 1000 de tu canal, enhorabuena!! He devorado el curso en 3 semanas, muchas gracias por el esfuerzo! Como sugerencias para este curso me gustaría ver una parte con librerías tan potentes como numpy y matplotlib. Espero que lo tengas en cuenta, saludos!
Gracias por el comentario. Intentaré abordar todos los temas que me proponéis, aunque no será fácil. Un saludo!!
Felicitarte por tus videos son excelentes estoy aprendiendo mucho. Saludos desde el confinamiento que nos ha tocado vivir
Grande Juan. sos muy claro en tus clases
"hasta entonces que os vaya bien"
JAJAJAJAJAJ ME ENCANTANNNN LAS INDIRECTAS QUE TIRA AL FINAL DE LOS VIDEOS
Que buen video bro eres un grande. Esta muy bueno el curso
Lo felicito por los 1000 de conocimiento.. Muchas gracias
Gracias ! Un saludo
Muchas gracias!!! Excelente manera de explicar.
Te mereces un monumeno hombre
Gracias !! Me alegro de que te guste. Un saludo!
Felicitaciones y gracias por esos 1000 Videos, esperamos miles más! Son excelente tus videos
Gracias por el comentario!! Un saludo
1ooo videos wow!!! Eres nuestro superman.
Felicitaciones y gracias por esos 1000 Videos, esperamos miles más!
Felicitaciones Juan!!! Todo mérito tuyo. Un fuerte abrazo!
Excelentes vídeos. Excelentes explicaciones. Gracias por compartir tu conocimiento!. Te Felicito!
Felicidades por el video no. 1000 :D tus cursos son geniales he aprendido mucho con ellos. Mucho éxito y espero que siga creciendo este canal. Saludos
Gracias !! Me alegro de que te gusten los cursos. UN saludo!"
Pues a mi me quedó bien el scrollbar vertical , lo que hice fue crear otro Frame solo y exclusivamente para introducir el Text y el Scrollbar y lo hice usando en vez de el posicionamiento grid() que lo use para el el primer Frame en este Frame secundario usé el posicionamiento pack() Y quedó muy bien. . O sea meter un Frame con posicionamiento pack() para el text y scroll en otro Frame con posicionamientos grid(). Un saludo y gracias por sus vídeos
Excelente Curso felicitaciones desde Venezuela
Muchas gracias ! Un saludo
Gracias por darnos este maravilloso curso :)
Enhorabuena por los mil vídeos, seguramente ya llevas muchísimos más pero aun así te felicito.
Gracias !! Un saludo
Muy bueno! siguiendo tu cursillo con muchas ganas!!
Explicas bien hay que darte un premio
una vez mas gracias por tus aportes
excelente los videos y gracias por explicarlos de forma tan entendible. saludosss
buenos dias profe, desde argentina en el fin de semana tambien se estudia !!!!!!!!
Felicitaciones Juan por los 1000 videos !!!
Gracias !! Un saludo!
felicidades por el video n°1.000
Gracias Juan por los Cursos!
no se si ya lo hayan comentado, pero el scroll si se puede colocar dentro del mismo cuadro de texto, poniendo en su grid la misma columna donde está el cuadro de texto y colocandola al lado derecho con un sticky="nse"
Excelentes vídeos, muy prácticos y masticables
En la libreria de tkinter existe un widget
import tkinter
import tkinter.scrolledtext as scrolledtext
un Texto con scroll integrado :)
OJO: para usar esto sería como un método. Ejemplo:
miTexto=scrolledtext.ScrolledText(miFrame, width=10, height=10)
miTexto.grid(row=4, column=2)
@@ragnarlodbrok4005 Muchas gracias! y queria preguntarte, como puedo ubicar entonces el label para que no me quede corrido el cuadro de texto? Ya intente darle padx diferentes pero me queda corrido respecto a los otros entry`s
Sirvió perfecto! Gracias.
10 de 10 tus explicaciones Juan excelente (y)
Grande ostiaa es un gran maestro.
Excelente amigo. Muchas gracias!
Felicidades amigo, gracias por compartir conocimientos.
Eres increíble Juan, gracias por todo
gracias por este video y tus demas tutos. En lo personal pienso que es bastante complicado entender la documentacion de python. La documentacion de java considero que estaba mas ordenado, aunque, es bastante.
Video 1000, enhorabuena.
Hola Juan, muuuuuchas gracias por tu esfuerzo por ayudarnos a intentar aprender a programar ;)
Me gustaría creer que puedo hacer un aporte tratando de ayudar con mi granito de arena a todo lo que tú nos das. En relación al "scrollbar" y si se puede posicionar en la misma columna del cuadro de comentarios, yo lo he conseguido haciendo los pasos que vos enseñas pero solo cambiando un parámetro donde usamos el metodo .grid: " .grid(row=4, column=1, sticky="nse") "; simplemente quitando el punto cardinal " w " del código, y me funsióna.
cuadroComentarios=Text(miFrame, width=20, height=5)
cuadroComentarios.grid(row=4, column=1, padx=15, pady=15)
cuadroComentarios.config(bg="light grey", fg="blue", font="Arial", padx=10, pady=10)
scrollVert=Scrollbar(miFrame, command=cuadroComentarios.yview)
scrollVert.grid(row=4, column=1, sticky="nse")
cuadroComentarios.config(yscrollcommand=scrollVert.set)
También me surge la duda de cual es la diferencia entre hacer:
import tkinter -----» (que NO me funciona)
y hacer como tú lo enseñar:
from tkinter import *
¿Es que no estoy importando de las dos maneras lo mismo?
Otra vez muchas gracias por todo.
Saludos, y espero que sirva ;)
Cuando le das form tkinter import * impotra todala biblioteca completa y no tienes que hacer referencia a ella nuevamente, si lo llamas "import tkinter" debes llamar a la biblioteca en cada función o método que utilices de la misma, también puedes llamarla "import tkinter as Tk" y así solo escribirías tk antes de cada función en ves del nombre completo de la biblioteca
@@thor844 Gracias
En caso de que ustedes quieran agregar algo al texto, ejemplo: insert(INSERT , "Hola. ¿Cómo estás?").
Actualizando el metodo explicado en el video:
"textoComenario.config(yscrollcommand=scroll_y.set)"
Grande Juan.
Critica Constructiva Este Video Es Buenisimo Pero En su momento Pudiste importar en un archivo nuevo todo lo utilizado en el tutorial haci seria un repaso y se te hubiera entendido mejor en un archivo mas ordenado pero Buen Video Eres El Mejor
Felicidades!
Muy bueno!!!
Maestro muchas gracias
Según nuestro querido ChatGPT, una forma de incrustar el Rollbar al cuadro de texto es de la siguiente forma:
import tkinter as tk
# Crear la ventana principal
root = tk.Tk()
root.title("Ejemplo de Text con Scrollbar")
# Crear un marco para organizar el Text y el Scrollbar
frame = tk.Frame(root)
frame.pack(expand=True, fill='both')
# Crear el widget Text
text_widget = tk.Text(frame, wrap="word") # wrap="word" para ajustar por palabras
text_widget.pack(side="left", expand=True, fill="both")
# Crear el Scrollbar
scrollbar = tk.Scrollbar(frame, orient="vertical", command=text_widget.yview)
scrollbar.pack(side="right", fill="y")
# Vincular el Scrollbar al widget Text
text_widget.config(yscrollcommand=scrollbar.set)
# Agregar algo de texto de ejemplo
for i in range(100):
text_widget.insert("end", f"Línea {i + 1}
")
# Iniciar el bucle principal de la aplicación
root.mainloop()
Explicación del código:
Marco (Frame): Se utiliza para organizar el Text y la Scrollbar juntos.
Text: El widget de texto es donde el usuario puede escribir o leer.
Scrollbar: Se crea con orientación vertical (orient="vertical") y se vincula al desplazamiento vertical del widget Text mediante command=text_widget.yview.
Vinculación: La barra de desplazamiento informa al widget Text cuando el usuario la mueve mediante command. A la vez, el widget Text actualiza la posición de la barra con yscrollcommand=scrollbar.set.
Excelente curso!
Gracias...
Si desordenamos el código como se ha hecho en el video, cuando queremos desplazarnos con el tabulador para pasar al siguiente campo de texto, nos lleva al siguiente campo según las líneas de código y no según están en la interfaz grafica.
Efectivamente Python sigue el orden del código y no el de la interfaz para establecer el foco. Se soluciona con lift() y focus_set(). Ejemplo:import tkinter as tk
root = tk.Tk()
entry2 = tk.Entry(root)
entry2.grid(row=1, column=0)
entry1 = tk.Entry(root)
entry1.grid(row=0, column=0)
entry3 = tk.Entry(root)
entry3.grid(row=2, column=0)
# Configurar manualmente el foco
entry1.lift() # Levanta `entry1` en la jerarquía de foco
entry1.focus_set() # Establece el foco inicial
root.mainloop()
¡Saludos!
@@pildorasinformaticas gracias Juan! Odie la programacion en el curso medio que hice hace 12 años, hoy estoy focus y con ganas de aprender cada dia mas y eso es gracias a tus cursos, un abrazo!
Y Base de datos con Python? seria bueno que después siguieras con eso.
Excelente canal.
Saludos!
Como puedo hacer para tomar un dato escrito por el usuario en un cuadro de texto y usar ese dato para realizar operaciones, por ejemplo, una interfaz gráfica que resuelva la formula general, pida valores A, B y C y un botón de resultado, como hago yo para que esos valores abc que puso el usuario queden registrados como variables que pueda manipular yo después para obtener el resultado
Buenas, una pregunta con mi codigo, me preguntaba como se realizaria un metodo para que al momento de yo presionar un boton, este me abra el ejecutable de otro archivo python, algo asi como una segunda ventana que se abre desde una ventana principal, por medio de un boton, gracias
Miguel Martínez estuvo aquí!!
no me termina de convencer esta forma de armar ventanas, hay alguna libreria mas visual? Por ejemplo en android tengo vistas xml que voy editando y me parece mucho mas comodo.
Se puede hacer que cuando utilices el grid el frame no se redimensione?
como lo haces esas recuedros rojos con el editor de video
Ojalá vinieras a México a dar clases en mi Universidad.
Para los que programamos en arquitectura MVC como podemos enviar los comandos para los botones?
no entendi la parte en la que pone "Text(miFrame, width=16, height=5)" y el text se queda de esas medidas, en que undades está definido? ya que pixeles obiamente no son
este video si estuvo cargado gracias profe
Buenas en los widget Text al escribir cuando llegas al final se parten las palabras si no caben, esto hay alguna forma de que si no cabe la palabra baje a la siguiente linea automáticamente, por cierto ojala todos los profesores supieran explicar igual que tu, gracias por dedicar parte de tu tiempo a realizar estos maravillosos cursos
FELICIDADES por los tutoriales, han Sido de gran ayuda para mis proyectos...... Tengo una duda y espero me pueda aclarar por este medio..... Quise añadir un Scrollbar y me lanza un error que dice name ScrollBar un not definet..... No encuentro como solucionarlo.
a mi no me sale usar las "columnas" porque se me mueven todos los elementos pero una consulta, si uso "place" para ubicar basicamente el texto y la caja de comentarios, como puedo hacer para agregar el "nsew" ? porque en el ".place" no me deja :c
Seria interesante que dejaras un link a los programas terminados en cada video si no es mucha molestia, mas que nada para usarlos de ejemplo, esto simplificaria las cosas, y evitaría que avance y retroceda el video para ver cada instrucción, es solo una sugerencia.
Muy buenos los videos, gracias
muy bien