Este documento introduce PyQt y proporciona varios ejemplos de aplicaciones GUI básicas creadas con PyQt. Explica conceptos clave como orientación a objetos, jerarquía de clases, señales y comportamientos en PyQt. Luego presenta ejemplos de aplicaciones que incluyen líneas de texto, listas, selección de elementos, fuentes, calendario, pestañas y un formulario completo con validación.
Los documentos presentan varios ejemplos de código C/C++ que incluyen: 1) bucles for y while para recorrer arreglos y vectores, llenarlos con valores y mostrarlos, 2) condicionales if/else para comprobar valores y mostrar mensajes, y 3) uso de funciones como scanf y printf para entrada y salida de datos. La mayoría de los ejemplos muestran bucles anidados para recorrer matrices de dos dimensiones.
Este documento contiene 13 problemas resueltos de programación en C++. Cada problema presenta una breve descripción del problema y la solución implementada en C++ con funciones y procedimientos. Los problemas incluyen hacer el producto de matrices, calcular el perímetro de un triángulo, implementar una serie de Taylor, convertir números entre bases y verificar si un triángulo es posible.
El documento presenta varios ejercicios de programación en C++ relacionados con aritmética, vectores, matrices y series numéricas. Los ejercicios muestran código para calcular múltiplos de 3, sumar y restar números, evaluar expresiones polinómicas, llenar y mostrar vectores, generar matrices con patrones numéricos específicos, y más.
Los documentos presentan varios ejemplos de código Java que incluyen clases, métodos main, variables, operadores, condicionales if-else, ciclos for y while, arrays unidimensionales y bidimensionales, y manejo de excepciones e ingreso de datos por medio de JOptionPane. Los ejemplos cubren temas básicos de programación como entrada y salida de datos, procesamiento de cadenas y números, y estructuras de control de flujo.
El programa lee una matriz de tamaño n x m ingresado por el usuario, calcula el promedio de los elementos pares y reemplaza el mayor elemento de cada columna por dicho promedio, imprimiendo luego las matrices original y modificada.
El documento contiene 6 ejercicios de programación en C que resuelven problemas matemáticos y de estructuras de datos. El Ejercicio 1 calcula la distancia entre 2 puntos. El Ejercicio 2 calcula distancias entre puntos almacenados en un arreglo. El Ejercicio 3 carga datos de equipos deportivos de archivos. El Ejercicio 4 simula una partida de poker. El Ejercicio 5 guarda datos personales en un archivo CSV. El Ejercicio 6 imprime una tabla con los datos del archivo CSV.
Este código Java permite al usuario ingresar una fecha y calcula el número tarot asociado a esa fecha sumando los dígitos del día, mes y año ingresados, repitiendo el proceso de suma de dígitos hasta obtener un solo dígito y mostrar el resultado final al usuario.
Ejercicios resueltos informática II practica 1 (nueva 2014)Alvin Jacobs
Este documento contiene la resolución de 8 ejercicios prácticos de programación en C sobre temas como manejo de arreglos bidimensionales, ordenamiento de cadenas, lectura y escritura de archivos CSV, y cálculo de estadísticas sobre datos meteorológicos. Los ejercicios van desde llenar y mostrar un rombo hasta generar y analizar datos de temperaturas mensuales.
Los documentos presentan varios ejemplos de código C/C++ que incluyen: 1) bucles for y while para recorrer arreglos y vectores, llenarlos con valores y mostrarlos, 2) condicionales if/else para comprobar valores y mostrar mensajes, y 3) uso de funciones como scanf y printf para entrada y salida de datos. La mayoría de los ejemplos muestran bucles anidados para recorrer matrices de dos dimensiones.
Este documento contiene 13 problemas resueltos de programación en C++. Cada problema presenta una breve descripción del problema y la solución implementada en C++ con funciones y procedimientos. Los problemas incluyen hacer el producto de matrices, calcular el perímetro de un triángulo, implementar una serie de Taylor, convertir números entre bases y verificar si un triángulo es posible.
El documento presenta varios ejercicios de programación en C++ relacionados con aritmética, vectores, matrices y series numéricas. Los ejercicios muestran código para calcular múltiplos de 3, sumar y restar números, evaluar expresiones polinómicas, llenar y mostrar vectores, generar matrices con patrones numéricos específicos, y más.
Los documentos presentan varios ejemplos de código Java que incluyen clases, métodos main, variables, operadores, condicionales if-else, ciclos for y while, arrays unidimensionales y bidimensionales, y manejo de excepciones e ingreso de datos por medio de JOptionPane. Los ejemplos cubren temas básicos de programación como entrada y salida de datos, procesamiento de cadenas y números, y estructuras de control de flujo.
El programa lee una matriz de tamaño n x m ingresado por el usuario, calcula el promedio de los elementos pares y reemplaza el mayor elemento de cada columna por dicho promedio, imprimiendo luego las matrices original y modificada.
El documento contiene 6 ejercicios de programación en C que resuelven problemas matemáticos y de estructuras de datos. El Ejercicio 1 calcula la distancia entre 2 puntos. El Ejercicio 2 calcula distancias entre puntos almacenados en un arreglo. El Ejercicio 3 carga datos de equipos deportivos de archivos. El Ejercicio 4 simula una partida de poker. El Ejercicio 5 guarda datos personales en un archivo CSV. El Ejercicio 6 imprime una tabla con los datos del archivo CSV.
Este código Java permite al usuario ingresar una fecha y calcula el número tarot asociado a esa fecha sumando los dígitos del día, mes y año ingresados, repitiendo el proceso de suma de dígitos hasta obtener un solo dígito y mostrar el resultado final al usuario.
Ejercicios resueltos informática II practica 1 (nueva 2014)Alvin Jacobs
Este documento contiene la resolución de 8 ejercicios prácticos de programación en C sobre temas como manejo de arreglos bidimensionales, ordenamiento de cadenas, lectura y escritura de archivos CSV, y cálculo de estadísticas sobre datos meteorológicos. Los ejercicios van desde llenar y mostrar un rombo hasta generar y analizar datos de temperaturas mensuales.
Artesanos de software: El uso e implementación de patrones de diseño en siste...Software Guru
Como líderes de proyectos, líderes técnicos, arquitectos de aplicaciones o desarrolladores, al comenzar un nuevo proyecto, dar mantenimiento sobre sistemas existentes o realizar una reingeniería de una aplicación, en la mayoría de los casos surgen las siguientes preguntas: ¿Qué tecnología usar para el desarrollo?, ¿Qué framework nos facilitará el trabajo de implementación?, ¿Cómo puedo acelerar el desarrollo del sistema?.
Éstas y más interrogantes se generan al momento de la definición de la arquitectura de un nuevo proyecto, todo con un objetivo final: cumplir con las características ideales de una aplicación (que ésta sea mantenible, escalable, robusta, entendible y un largo etcétera necesario para cumplir con los deseos de los usuarios en el menor tiempo posible).
La sesión expondrá diversos sistemas y casos de éxitos que cuentan con la implementación de una serie de patrones de diseño que permite prescindir de un framework en particular para su desarrollo, se expondrá una arquitectura de referencia con los principales patrones utilizados, ventajas/desventajas así como ejemplos y recomendaciones de cuando utilizar un framework, realizar una implementación in-house e incluso una mezcla de ambos enfoques.
Semblanza del conferencista:
Actualmente es Lider de Proyecto Aplicaciones Empresariales en Telcel, donde es responsable de definición de Arquitecturas de Aplicaciones Empresariales Orientadas a Servicios e Integración de Plataformas. Es Ingeniero en Sistemas Computacionales por el Instituto Tecnológico de Ciudad Guzmán.
Maestría en Ciencias en el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET).
Este documento presenta conceptos básicos sobre funciones y arreglos en C. Explica que las funciones permiten encapsular y reutilizar código, y pueden definirse separando la interfaz de la implementación. También introduce conceptos como ámbito, variables locales y globales, y diferentes formas de declarar y acceder a arreglos y cadenas de caracteres. Finalmente, propone algunos ejercicios prácticos sobre el uso de funciones y arreglos.
Una solución para agregar estructura de repetición UVM
El documento describe cómo agregar una estructura de repetición a código orientado a objetos para generar un reporte de calificaciones de varios alumnos. Se propone usar un arreglo de objetos de tipo Alumno y llenar la información de cada alumno en un objeto diferente usando un ciclo for o while. El reporte mostrará los datos de cada alumno y los promedios totales calculados recorriendo el arreglo con una estructura de repetición.
Este documento contiene información sobre funciones, estructuras de datos y arreglos unidimensionales en el lenguaje de programación C. Explica conceptos como declaración de funciones, llamadas a funciones, declaración y acceso a elementos de arreglos. También presenta ejemplos de código para ilustrar el uso de funciones, arreglos y el producto algebraico de matrices.
Este documento contiene información sobre funciones, estructuras de datos y arreglos unidimensionales en el lenguaje de programación C. Explica que un programa está formado por la estructura de datos y el algoritmo, y define conceptos como funciones, declaración de arreglos, arreglos unidimensionales y su indexación. También incluye ejemplos de código C para ilustrar estos conceptos.
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfMarxx4
1. El documento introduce Python y su entorno de desarrollo, explicando conceptos básicos como su sintaxis, variables, tipos de datos y operadores. 2. Se describen modelos comunes de inteligencia artificial como regresión, clasificación, agrupamiento y redes neuronales que se usan en ciencia de datos. 3. Se requiere instalar Anaconda para trabajar con Python y su entorno de desarrollo.
Este documento presenta una comparación entre Go y Python, destacando las similitudes y diferencias en sus características como asignación de variables, condicionales, slices, maps, loops, interfaces, contextos, generadores, canales y concurrencia, y pruebas unitarias. Explica cómo Go maneja conceptos como GOPATH, imports, acceso, y sincronización de una manera diferente a Python. El objetivo es brindar una introducción a Go para desarrolladores con experiencia en Python.
El documento describe conceptos relacionados con colecciones genéricas, expresiones regulares, conexiones a bases de datos, sentencias CRUD y multiprocesamiento en Java. Explica que las colecciones son estructuras de datos que permiten realizar operaciones como get, set y find, y que los genéricos permiten sobrecargar métodos de forma similar. También cubre expresiones regulares, conexiones a bases de datos usando JDBC, sentencias SQL para crear, leer, actualizar y eliminar datos, y el uso de hilos para lograr multiprocesamiento.
El documento presenta 5 problemas resueltos relacionados con colas. El primer problema trata sobre eliminar el primer par de enteros en una cola si existe. El segundo problema elimina las vocales de una palabra almacenada en una cola. El tercer problema elimina el k-ésimo número impar de una cola. El cuarto problema elimina los elementos únicos de una cola circular. El quinto problema duplica los elementos pares de una cola utilizando la interfaz Queue.
Este documento contiene varios programas en C++ que utilizan arreglos unidimensionales y bidimensionales. El primer programa muestra cómo imprimir la diagonal principal y la diagonal invertida de una matriz 3x3 leyendo valores del usuario. Otro programa calcula el promedio de calificaciones de alumnos y unidades, identifica la unidad y alumno con mayor y menor promedio. Finalmente, se explica el uso de datos abstractos como estructuras para almacenar nombres y edades de alumnos y sumar sus edades.
Semana 7 while for (2).pptx introduccion a la computacionaidaramireztamayo3
Este documento presenta información sobre el flujo cíclico while y for en Python. Explica que while permite repetir instrucciones mientras se cumpla una condición, mientras que for permite iterar sobre elementos de una secuencia generada por range. Incluye ejemplos de conversión de grados Fahrenheit a Celsius usando while, y suma de números usando for. Finalmente, compara while y for.
Este documento presenta un manual básico de NetLogo en español. Incluye 17 ejercicios que permiten familiarizarse con el lenguaje de programación NetLogo de forma sencilla a través de pequeños programas ejemplo. Los ejercicios cubren temas como la creación de agentes, el uso de primitivas básicas, la definición de procedimientos, el uso de botones, la modificación de propiedades de agentes y más. El objetivo final es que el lector aprenda los conceptos y herramientas básicas de NetLogo a trav
El documento analiza el comportamiento asintótico de algoritmos a medida que aumenta el tamaño de la entrada n. Explica que las constantes son detalles irrelevantes, y que estamos interesados en cómo cambia el tiempo de ejecución en proporción a n. Introduce las notaciones O, Ω y Θ para describir límites superiores, inferiores y exactos, respectivamente. Además, provee un ejemplo de búsqueda binaria para ilustrar el análisis.
El documento explica el uso de registros y vectores de registros en Ada. Define un tipo de registro para almacenar información personal como nombre, DNI y domicilio. Luego declara un vector de ese tipo de registro para almacenar la información de múltiples personas. El programa asigna valores a los campos de los registros en el vector y los imprime para mostrar cómo manipular vectores de registros.
El documento explica el uso de registros y vectores de registros en Ada. Define un tipo de registro para almacenar información personal con campos como nombre, DNI y dirección. Luego declara un vector de ese tipo de registro para almacenar la información de múltiples personas. El programa asigna valores a los campos de los registros en el vector y los imprime para mostrar cómo manipular vectores de registros.
Este documento presenta información sobre funciones y vectores en programación. Explica conceptos como declaración, llamada y retorno de funciones, funciones con parámetros y funciones con vectores. Incluye ejemplos de código de funciones sin parámetros, con vectores y funciones que usan menús.
Este documento contiene información sobre funciones y variables en el lenguaje de programación C. Explica conceptos como declaración, llamada y retorno de funciones, funciones con parámetros y funciones con vectores. También incluye ejemplos de código de funciones sin parámetros, con vectores y validación de datos ingresados en un vector.
Este documento presenta varios problemas de programación en Java relacionados con matrices y listas de números. Incluye problemas como determinar si un área dado corresponde a un cuadrado o rectángulo, ordenar listas de números, sumar las columnas de una matriz cuadrada, y girar una matriz 90 grados. También presenta ejemplos de entrada y salida esperada para cada problema.
El documento explica los fundamentos de los arreglos en C, incluyendo su definición como una colección de datos del mismo tipo con una posición única identificada por un índice, la forma de declararlos indicando su tipo, nombre y tamaño, y cómo acceder y modificar sus elementos usando el nombre del arreglo y el índice correspondiente. También cubre temas como inicializar arreglos, leer y escribir sus elementos, arreglos multidimensionales y la función sizeof para determinar el tamaño de un arreglo.
Artesanos de software: El uso e implementación de patrones de diseño en siste...Software Guru
Como líderes de proyectos, líderes técnicos, arquitectos de aplicaciones o desarrolladores, al comenzar un nuevo proyecto, dar mantenimiento sobre sistemas existentes o realizar una reingeniería de una aplicación, en la mayoría de los casos surgen las siguientes preguntas: ¿Qué tecnología usar para el desarrollo?, ¿Qué framework nos facilitará el trabajo de implementación?, ¿Cómo puedo acelerar el desarrollo del sistema?.
Éstas y más interrogantes se generan al momento de la definición de la arquitectura de un nuevo proyecto, todo con un objetivo final: cumplir con las características ideales de una aplicación (que ésta sea mantenible, escalable, robusta, entendible y un largo etcétera necesario para cumplir con los deseos de los usuarios en el menor tiempo posible).
La sesión expondrá diversos sistemas y casos de éxitos que cuentan con la implementación de una serie de patrones de diseño que permite prescindir de un framework en particular para su desarrollo, se expondrá una arquitectura de referencia con los principales patrones utilizados, ventajas/desventajas así como ejemplos y recomendaciones de cuando utilizar un framework, realizar una implementación in-house e incluso una mezcla de ambos enfoques.
Semblanza del conferencista:
Actualmente es Lider de Proyecto Aplicaciones Empresariales en Telcel, donde es responsable de definición de Arquitecturas de Aplicaciones Empresariales Orientadas a Servicios e Integración de Plataformas. Es Ingeniero en Sistemas Computacionales por el Instituto Tecnológico de Ciudad Guzmán.
Maestría en Ciencias en el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET).
Este documento presenta conceptos básicos sobre funciones y arreglos en C. Explica que las funciones permiten encapsular y reutilizar código, y pueden definirse separando la interfaz de la implementación. También introduce conceptos como ámbito, variables locales y globales, y diferentes formas de declarar y acceder a arreglos y cadenas de caracteres. Finalmente, propone algunos ejercicios prácticos sobre el uso de funciones y arreglos.
Una solución para agregar estructura de repetición UVM
El documento describe cómo agregar una estructura de repetición a código orientado a objetos para generar un reporte de calificaciones de varios alumnos. Se propone usar un arreglo de objetos de tipo Alumno y llenar la información de cada alumno en un objeto diferente usando un ciclo for o while. El reporte mostrará los datos de cada alumno y los promedios totales calculados recorriendo el arreglo con una estructura de repetición.
Este documento contiene información sobre funciones, estructuras de datos y arreglos unidimensionales en el lenguaje de programación C. Explica conceptos como declaración de funciones, llamadas a funciones, declaración y acceso a elementos de arreglos. También presenta ejemplos de código para ilustrar el uso de funciones, arreglos y el producto algebraico de matrices.
Este documento contiene información sobre funciones, estructuras de datos y arreglos unidimensionales en el lenguaje de programación C. Explica que un programa está formado por la estructura de datos y el algoritmo, y define conceptos como funciones, declaración de arreglos, arreglos unidimensionales y su indexación. También incluye ejemplos de código C para ilustrar estos conceptos.
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfMarxx4
1. El documento introduce Python y su entorno de desarrollo, explicando conceptos básicos como su sintaxis, variables, tipos de datos y operadores. 2. Se describen modelos comunes de inteligencia artificial como regresión, clasificación, agrupamiento y redes neuronales que se usan en ciencia de datos. 3. Se requiere instalar Anaconda para trabajar con Python y su entorno de desarrollo.
Este documento presenta una comparación entre Go y Python, destacando las similitudes y diferencias en sus características como asignación de variables, condicionales, slices, maps, loops, interfaces, contextos, generadores, canales y concurrencia, y pruebas unitarias. Explica cómo Go maneja conceptos como GOPATH, imports, acceso, y sincronización de una manera diferente a Python. El objetivo es brindar una introducción a Go para desarrolladores con experiencia en Python.
El documento describe conceptos relacionados con colecciones genéricas, expresiones regulares, conexiones a bases de datos, sentencias CRUD y multiprocesamiento en Java. Explica que las colecciones son estructuras de datos que permiten realizar operaciones como get, set y find, y que los genéricos permiten sobrecargar métodos de forma similar. También cubre expresiones regulares, conexiones a bases de datos usando JDBC, sentencias SQL para crear, leer, actualizar y eliminar datos, y el uso de hilos para lograr multiprocesamiento.
El documento presenta 5 problemas resueltos relacionados con colas. El primer problema trata sobre eliminar el primer par de enteros en una cola si existe. El segundo problema elimina las vocales de una palabra almacenada en una cola. El tercer problema elimina el k-ésimo número impar de una cola. El cuarto problema elimina los elementos únicos de una cola circular. El quinto problema duplica los elementos pares de una cola utilizando la interfaz Queue.
Este documento contiene varios programas en C++ que utilizan arreglos unidimensionales y bidimensionales. El primer programa muestra cómo imprimir la diagonal principal y la diagonal invertida de una matriz 3x3 leyendo valores del usuario. Otro programa calcula el promedio de calificaciones de alumnos y unidades, identifica la unidad y alumno con mayor y menor promedio. Finalmente, se explica el uso de datos abstractos como estructuras para almacenar nombres y edades de alumnos y sumar sus edades.
Semana 7 while for (2).pptx introduccion a la computacionaidaramireztamayo3
Este documento presenta información sobre el flujo cíclico while y for en Python. Explica que while permite repetir instrucciones mientras se cumpla una condición, mientras que for permite iterar sobre elementos de una secuencia generada por range. Incluye ejemplos de conversión de grados Fahrenheit a Celsius usando while, y suma de números usando for. Finalmente, compara while y for.
Este documento presenta un manual básico de NetLogo en español. Incluye 17 ejercicios que permiten familiarizarse con el lenguaje de programación NetLogo de forma sencilla a través de pequeños programas ejemplo. Los ejercicios cubren temas como la creación de agentes, el uso de primitivas básicas, la definición de procedimientos, el uso de botones, la modificación de propiedades de agentes y más. El objetivo final es que el lector aprenda los conceptos y herramientas básicas de NetLogo a trav
El documento analiza el comportamiento asintótico de algoritmos a medida que aumenta el tamaño de la entrada n. Explica que las constantes son detalles irrelevantes, y que estamos interesados en cómo cambia el tiempo de ejecución en proporción a n. Introduce las notaciones O, Ω y Θ para describir límites superiores, inferiores y exactos, respectivamente. Además, provee un ejemplo de búsqueda binaria para ilustrar el análisis.
El documento explica el uso de registros y vectores de registros en Ada. Define un tipo de registro para almacenar información personal como nombre, DNI y domicilio. Luego declara un vector de ese tipo de registro para almacenar la información de múltiples personas. El programa asigna valores a los campos de los registros en el vector y los imprime para mostrar cómo manipular vectores de registros.
El documento explica el uso de registros y vectores de registros en Ada. Define un tipo de registro para almacenar información personal con campos como nombre, DNI y dirección. Luego declara un vector de ese tipo de registro para almacenar la información de múltiples personas. El programa asigna valores a los campos de los registros en el vector y los imprime para mostrar cómo manipular vectores de registros.
Este documento presenta información sobre funciones y vectores en programación. Explica conceptos como declaración, llamada y retorno de funciones, funciones con parámetros y funciones con vectores. Incluye ejemplos de código de funciones sin parámetros, con vectores y funciones que usan menús.
Este documento contiene información sobre funciones y variables en el lenguaje de programación C. Explica conceptos como declaración, llamada y retorno de funciones, funciones con parámetros y funciones con vectores. También incluye ejemplos de código de funciones sin parámetros, con vectores y validación de datos ingresados en un vector.
Este documento presenta varios problemas de programación en Java relacionados con matrices y listas de números. Incluye problemas como determinar si un área dado corresponde a un cuadrado o rectángulo, ordenar listas de números, sumar las columnas de una matriz cuadrada, y girar una matriz 90 grados. También presenta ejemplos de entrada y salida esperada para cada problema.
El documento explica los fundamentos de los arreglos en C, incluyendo su definición como una colección de datos del mismo tipo con una posición única identificada por un índice, la forma de declararlos indicando su tipo, nombre y tamaño, y cómo acceder y modificar sus elementos usando el nombre del arreglo y el índice correspondiente. También cubre temas como inicializar arreglos, leer y escribir sus elementos, arreglos multidimensionales y la función sizeof para determinar el tamaño de un arreglo.
1. Introducci´on a PyQt
“¿Qui´en dijo que crear e implementar interfaces es dificil?”
Cristi´an D. Maureira Fredes
saint@archlinux.cl
Comunidad KDE Chile y
Arch Linux Chile
1 de noviembre de 2010
10. Introducci´on
¿Qu´e es Python?
Lenguaje de programaci´on de alto nivel.
Guido van Rossum (fines de los ochenta).
Nace con la idea de poder tener un c´odigo legible (simple).
3 of 30
11. Introducci´on
¿Qu´e es Python?
Lenguaje de programaci´on de alto nivel.
Guido van Rossum (fines de los ochenta).
Nace con la idea de poder tener un c´odigo legible (simple).
Multiparadigma (OO,Imperativo,Funcional).
3 of 30
12. Introducci´on
¿Qu´e es Python?
Lenguaje de programaci´on de alto nivel.
Guido van Rossum (fines de los ochenta).
Nace con la idea de poder tener un c´odigo legible (simple).
Multiparadigma (OO,Imperativo,Funcional).
Scripting (interpretado).
3 of 30
13. Introducci´on
¿Qu´e es Python?
Lenguaje de programaci´on de alto nivel.
Guido van Rossum (fines de los ochenta).
Nace con la idea de poder tener un c´odigo legible (simple).
Multiparadigma (OO,Imperativo,Funcional).
Scripting (interpretado).
Tipificado din´amico.
3 of 30
14. Introducci´on
¿Qu´e es Python?
Lenguaje de programaci´on de alto nivel.
Guido van Rossum (fines de los ochenta).
Nace con la idea de poder tener un c´odigo legible (simple).
Multiparadigma (OO,Imperativo,Funcional).
Scripting (interpretado).
Tipificado din´amico.
Multiplataforma, Open Source, ...
3 of 30
17. Introducci´on
¿Qu´e es Qt?
Biblioteca multiplataforma.
Es un framework desarrollado en C++.
Permite desarrollo de UI, DB, XML, WebKit, Multimedia,
Networking, OpenGL, scripting, etc.
4 of 30
18. Introducci´on
¿Qu´e es Qt?
Biblioteca multiplataforma.
Es un framework desarrollado en C++.
Permite desarrollo de UI, DB, XML, WebKit, Multimedia,
Networking, OpenGL, scripting, etc.
NO es s´olo una biblioteca gr´afica. (como otras.......
4 of 30
19. Introducci´on
¿Qu´e es Qt?
Biblioteca multiplataforma.
Es un framework desarrollado en C++.
Permite desarrollo de UI, DB, XML, WebKit, Multimedia,
Networking, OpenGL, scripting, etc.
NO es s´olo una biblioteca gr´afica. (como otras.......
..................GTK)
4 of 30
20. Introducci´on
Tenemos Qt con distintos sabores
PyQt - Bindings GPL/Comercial para Python (Riverbank)
PySide - LGPL bindings para Python (OpenBossa/Nokia)
Qyoto - Bindings para C# y .NET
QtRuby - Bindings para Ruby.
Qt Jambi - Bindings para Java.
Ada, Perl, Pascal, PHP, Haskell, Lua, Dao, D.
5 of 30
24. Introducci´on
Hello World
import sys
from PyQt4 . QtGui import QLabel , QApplication
app = QApplication ( sys . argv )
l a b e l = QLabel ( ” Hello World” )
l a b e l . show ()
sys . e x i t ( app . exec ( ) )
9 of 30
25. Introducci´on
Simple
import sys
from PyQt4 import QtGui
app = QtGui . QApplication ( sys . argv )
widget = QtGui . QWidget ()
widget . r e s i z e (250 , 150)
widget . setWindowTitle ( ’ simple ’ )
widget . show ()
sys . e x i t ( app . exec ( ) )
10 of 30
26. Conceptos
OO
Es importante que recordemos la Orientaci´on a Objetos.
Es de vital importancia, para Python y para Qt.
11 of 30
27. Conceptos
Jerarqu´ıa
Su estructura es modular.
> 300 clases.
> 6000 m´etodos.
En los cuales podemos encontrar:
QtCore
QtGui
QtSvg
QtSQL
...
12 of 30
31. Ejemplos
Lineas
import s y s
from PyQt4 import QtGui
from l i n e a s import ∗
c l a s s myGUI( QtGui . QWidget ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = U i L i n e s ()
s e l f . u i . setupUi ( s e l f )
s e l f . u i . button . c l i c k e d . connect ( s e l f . buttonChange )
def buttonChange ( s e l f ) :
t e x t = s e l f . u i . l i n e . t e x t ()
s e l f . u i . l a b e l . setText ( t e x t )
s e l f . u i . l i n e . setText ( ’ ’ )
i f name == ” m a i n ” :
app = QtGui . QApplication ( s y s . argv )
myapp = myGUI ()
myapp . show ()
s y s . e x i t ( app . exec ( ) )
16 of 30
32. Ejemplos
Listas
import s y s
from PyQt4 import QtGui
from l i s t a s import ∗
c l a s s myGUI( QtGui . QWidget ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = U i L i s t a s ()
s e l f . u i . setupUi ( s e l f )
s e l f . l i n e a s = [ ]
s e l f . u i . addButton . c l i c k e d . connect ( s e l f . addButtonPressed )
s e l f . u i . delButton . c l i c k e d . connect ( s e l f . delButtonPressed )
s e l f . u i . closeButton . c l i c k e d . connect ( s e l f . c l o s e )
def addButtonPressed ( s e l f ) :
t e x t = s e l f . u i . l i n e . t e x t ()
s e l f . l i n e a s . append ( t e x t )
s e l f . u i . l i s t . addItem ( t e x t )
s e l f . u i . l i n e . setText ( ’ ’ )
def delButtonPressed ( s e l f ) :
item = s e l f . u i . l i s t . c u r r e n t I t e m ()
t e x t = item . t e x t ()
j=0
f o r i i n s e l f . l i n e a s :
i f i == t e x t :
del s e l f . l i n e a s [ j ]
j = j + 1
s e l f . u i . l i s t . c l e a r ()
17 of 30
33. Ejemplos
Seleccion
import s y s
from PyQt4 import QtCore , QtGui
from s e l e c c i o n import ∗
c l a s s myGUI( QtGui . QWidget ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = U i s e l e c c i o n ()
s e l f . u i . setupUi ( s e l f )
s e l f . u i . addButton . c l i c k e d . connect ( s e l f . a p p l y F i l t e r )
s e l f . f i l l ()
def f i l l ( s e l f ) :
s e l f . nombres = [ ’ C r i s t i a n ’ ,
’ I g n a c i o ’ ,
’ G a b r i e l ’ ,
’ C h r i s t o p h e r ’ ,
’ Arnaldo ’ ,
’ Jaime ’ ,
’ S e r g i o ’ ,
’ Yonathan ’ ]
f o r i i n s e l f . nombres :
s e l f . u i . comboBox . addItem ( i )
s e l f . personas = [ ’ Yonathan Dossow ’ ,
’ Jaime Peldoza ’ ,
’ Jaime Oyarzun ’ ,
’ Arnaldo Garat ’ ,
’ S e r g i o Morales ’ ,
18 of 30
34. Ejemplos
Fuentes
import s y s
from PyQt4 import QtGui
from f o n t s import ∗
c l a s s myGUI( QtGui . QWidget ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = U i f o n t s ()
s e l f . u i . setupUi ( s e l f )
s e l f . u i . fontComboBox . currentFontChanged . connect ( s e l f . changeFont )
def changeFont ( s e l f ) :
s e l f . u i . f o n t . setFont ( s e l f . u i . fontComboBox . currentFont ( ) )
i f name == ” m a i n ” :
app = QtGui . QApplication ( s y s . argv )
myapp = myGUI ()
myapp . show ()
s y s . e x i t ( app . exec ( ) )
19 of 30
35. Ejemplos
Calendario
import s y s
from PyQt4 import QtGui
from c a l e n d a r import ∗
c l a s s myGUI( QtGui . QWidget ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = Ui Calendar ()
s e l f . u i . setupUi ( s e l f )
s e l f . u i . calendarWidget . c l i c k e d . connect ( s e l f . changeDate )
def changeDate ( s e l f ) :
s e l f . u i . l i n e E d i t . setText ( s e l f . u i . calendarWidget . s e l e c t e d D a t e ( ) . t o S t r i n g ( ) )
i f name == ” m a i n ” :
app = QtGui . QApplication ( s y s . argv )
myapp = myGUI ()
myapp . show ()
s y s . e x i t ( app . exec ( ) )
20 of 30
36. Ejemplos
Tabs
import s y s
from PyQt4 import QtGui
from tabs import ∗
c l a s s myGUI( QtGui . QWidget ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = U i t a b s ()
s e l f . u i . setupUi ( s e l f )
i f name == ” m a i n ” :
app = QtGui . QApplication ( s y s . argv )
myapp = myGUI ()
myapp . show ()
s y s . e x i t ( app . exec ( ) )
21 of 30
37. Ejemplos
Formulario
import os , s y s
from PyQt4 import QtCore , QtGui , Qt
from f o r m u l a r i o import ∗
c l a s s myGUI( QtGui . QWidget ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = Ui form ()
s e l f . u i . setupUi ( s e l f )
s e l f . sex , s e l f . name = None , None
s e l f . day , s e l f . month , s e l f . year = None , None , None
s e l f . u i . male . c l i c k e d . connect ( s e l f . changeRadioMale )
s e l f . u i . female . c l i c k e d . connect ( s e l f . changeRadioFemale )
s e l f . u i . name . textChanged . connect ( s e l f . changeName )
s e l f . u i . day . valueChanged . connect ( s e l f . changeDay )
s e l f . u i . month . valueChanged . connect ( s e l f . changeMonth )
s e l f . u i . year . valueChanged . connect ( s e l f . changeYear )
s e l f . u i . buttonBox . accepted . connect ( s e l f . answer )
s e l f . u i . buttonBox . r e j e c t e d . connect ( s e l f . c l o s e )
s e l f . u i . year . setMaximum (2010)
def changeRadioMale ( s e l f ) :
s e l f . sex = ”Hombre”
def changeRadioFemale ( s e l f ) :
s e l f . sex = ” Mujer ”22 of 30
38. Ejemplos
Menu
import os , s y s
from PyQt4 import QtCore , QtGui , Qt
from menu import ∗
c l a s s myGUI( QtGui . QMainWindow ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QWidget . i n i t ( s e l f , parent )
s e l f . u i = Ui MainWindow ()
s e l f . u i . setupUi ( s e l f )
s e l f . u i . a c t i o n T e s t . t r i g g e r e d . connect ( s e l f . t e s t A c t i o n )
s e l f . u i . a c t i o n E x i t . t r i g g e r e d . connect ( s e l f . c l o s e )
s e l f . u i . actionAbout . t r i g g e r e d . connect ( s e l f . aboutAction )
def t e s t A c t i o n ( s e l f ) :
p r i n t ” t e s t ”
def aboutAction ( s e l f ) :
p r i n t ” about ”
i f name == ” m a i n ” :
app = QtGui . QApplication ( s y s . argv )
myapp = myGUI ()
myapp . show ()
s y s . e x i t ( app . exec ( ) )
23 of 30
39. Ejemplos
Drag and Drop
import s y s
from PyQt4 import QtGui
c l a s s DragDrop ( QtGui . QDialog ) :
def i n i t ( s e l f , parent=None ) :
QtGui . QDialog . i n i t ( s e l f , parent )
s e l f . r e s i z e (180 , 60)
e d i t = QtGui . QLineEdit ( ’ ’ , s e l f )
e d i t . setDragEnabled ( True )
e d i t . move (20 , 20)
s c r e e n = QtGui . QDesktopWidget ( ) . screenGeometry ()
s i z e = s e l f . geometry ()
i f name == ” m a i n ” :
app = QtGui . QApplication ( s y s . argv )
icon = DragDrop ()
icon . show ()
s y s . e x i t ( app . exec ( ) )
24 of 30
40. Ejemplos
Multimedia - Audio
import s y s
from PyQt4 import QtGui
from PyQt4 . phonon import Phonon
app = QtGui . QApplication ( s y s . argv )
u r l=” A i r b e a t P r o j e c t−AirbeatOne . mp3”
w = QtGui . QWidget ()
audio = Phonon . c r e a t e P l a y e r ( Phonon . MusicCategory ,
Phonon . MediaSource ( u r l ))
w. setMinimumSize (100 ,100)
w. show ()
audio . play ()
s y s . e x i t ( app . exec ( ) )
25 of 30
41. Ejemplos
Multimedia - Video
import s y s
from PyQt4 import QtGui
from PyQt4 . phonon import Phonon
app = QtGui . QApplication ( s y s . argv )
u r l=” qt . f l v ”
w = QtGui . QWidget ()
p l a y e r = Phonon . VideoPlayer ( Phonon . VideoCategory ,w)
p l a y e r . load ( Phonon . MediaSource ( u r l ))
w. setMinimumSize (400 ,400)
topLayout = QtGui . QVBoxLayout (w)
topLayout . addWidget ( p l a y e r )
w. setLayout ( topLayout )
w. show ()
p l a y e r . play ()
s y s . e x i t ( app . exec ( ) )
26 of 30
44. Conclusiones
C++ es un muy buen lenguaje, pero Python es m´as simple.
Qt nos ofrece una amplia cantidad de ´Areas.
Al unir dos elementos simples, obtenemos algo genial.
No es solo un juguete, se pueden hacer cosas serias.
Abundan tutoriales en la red.
Buena documentaci´on.
F´acil de aprender.
29 of 30