Autor Tema: Video Tutorial Programación Qt C++  (Leído 20340 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tsk

  • PIC12
  • **
  • Mensajes: 78
Re:Video Tutorial Programación Qt C++
« Respuesta #75 en: 16 de Julio de 2017, 11:11:35 »
La mayoría de las bibliotecas de QT estan baja LGPL, lo cual te permite linkear tu aplicación comercial con ellas sin problemas, si modificas alguna parte de las QT debes de hacer pública esa modificación a tus usuarios. Si no sólo debes hacer hincapié que estas usando QT en tu aplicación e informar al usuario donde puede descargar las fuentes de QT, no de tu aplicación. En el siguiente enlace menciona que hay algunas que están en GPL, por lo que si las usas tendrías que liberar el código fuente de tu aplicación-

https://www.qt.io/faq/#_Toc_3_7

Aparte de las QT estan las GTK+ que son multiplataforma, aunque no es posible usarlas en android.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2575
Re:Video Tutorial Programación Qt C++
« Respuesta #76 en: 16 de Julio de 2017, 12:02:36 »
.

Ah, pues entonces me vale, yo entendí que si hacías desarrollos comerciales con la versión gratuita de QT, tenías que liberar tu código fuente.

Lo que no entiendo, entonces, es de que sirve la licencia comercial de QT, que cuesta 295 $/mes.

Otra duda que tengo es sobre los compiladores a usar para Windows con QT Creator. MinGW, Cygwin, MSVC++. De MinGW parece que solo hay versión de 32 bits en la página oficial, y la descarga de QT con Mingw, es de 32 bits, pero buscando por Google, me sale una versión de 64 bits. No se si hay alguna forma de usar MinGW 64 bit con QT.

Cygwin, no recuerdo si era de 32 ó 64 bits. Y lo de usar el compilador de VC++, desde QT, no entiendo si es de pago o gratuito, yo tengo intalado Vistual Studio 2015 y me lo pilla, pero veo que hay posibilidad de descargar el compilador, creo que sin coste (o eso me ha parecido).

Ahora mismo, tengo instalados los kits del compilador MinGW 5.3.0 32 bit y MSVC++ 14.0 64 bit, y con los dos me compila perfecto. Lo único que para MSVC++ me dice que no tengo Debug configurado.
« Última modificación: 16 de Julio de 2017, 12:17:26 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2575
Re:Video Tutorial Programación Qt C++
« Respuesta #77 en: 16 de Julio de 2017, 12:20:15 »
Señales y Slot creo que es lo principal de Qt, yo por un momento segui estos videotutoriales en ingles

Código: [Seleccionar]
https://www.youtube.com/watch?v=Ex0ieUQMQmg&list=PL2D1942A4688E9D63&index=41


Se ven bien, pero si los hay en español, como los de bigluis, los prefiero por comodidad. También he conseguido un par de libros en PDF, bastante actualizados.

Desconectado tsk

  • PIC12
  • **
  • Mensajes: 78
Re:Video Tutorial Programación Qt C++
« Respuesta #78 en: 16 de Julio de 2017, 12:24:22 »
No necesariamente tienes que liberar tu código, porque está bajo LGPL (con algunas excepciones en GPL de las cuales tendrías que cuidar en no usar esos componentes).

Pero lo que si tienes que diferenciar es entre enlazado estático y dinámico.

Si lo enlazas de forma estática, tienes que liberar el código, si los enlazas de forma dinámica, no tienes problemas.

La idea detrás de la versión Comercial es que tu puedas modificar las fuentes de QT y no liberar el código de esas modificaciones.

https://www.qt.io/licensing-comparison/

Citar
Possible to keep your application private with dynamic linking: LGPL Si GPL No Comercial Si

Con respecto a VC++ no tengo idea de su licenciamiento, pero lo que tendrías que ver es lo relacionado a la redistribución de sus componentes.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2575
Re:Video Tutorial Programación Qt C++
« Respuesta #79 en: 16 de Julio de 2017, 12:42:58 »
Si lo enlazas de forma estática, tienes que liberar el código, si los enlazas de forma dinámica, no tienes problemas.

Tengo que ver como se hace eso, me hago una idea de en que consiste, pero no el detalle de como hacerlo. ¿ Tiene algo que ver con crear esa librería dinámica como una DLL (o algo así), para que quede como algo externo a mi aplicación ?.

Desconectado tsk

  • PIC12
  • **
  • Mensajes: 78
Re:Video Tutorial Programación Qt C++
« Respuesta #80 en: 16 de Julio de 2017, 12:52:25 »
Si lo enlazas de forma estática, tienes que liberar el código, si los enlazas de forma dinámica, no tienes problemas.

Tengo que ver como se hace eso, me hago una idea de en que consiste, pero no el detalle de como hacerlo. ¿ Tiene algo que ver con crear esa librería dinámica como una DLL (o algo así), para que quede como algo externo a mi aplicación ?.

Es exactamente eso. Estático: crea un ejecutable con todo incluido, dinámico: usa las DLL en Windows o .so en Linux.

Edito para agregar un ejemplo simple de creación de librerías compartidas con g++ y diferencia con el enlazado estático

Tengo los siguientes tres archivos:

lib1.hpp
Código: C
  1. #ifndef __LIB1_HPP
  2. #define __LIB1_HPP
  3.  
  4. int suma(int a, int b);
  5.  
  6. #endif
  7.  

lib1.cpp
Código: C
  1. #include "lib1.hpp"
  2. int suma(int a, int b){
  3.         return a+b;
  4. }
  5.  

main.cpp
Código: C
  1. #include <iostream>
  2. #include "lib1.hpp"
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.         int a,b;
  9.         a = 10;
  10.         b = 20;
  11.         cout<<suma(a,b)<<endl;
  12.  
  13.         return 0;
  14. }
  15.  

Compilación estática:

Código: [Seleccionar]
mdkir estatica
cd estatica
g++ -L../ ../main.cpp ../lib1.cpp -o static

Salida
Código: [Seleccionar]
$ ./static
30

Compilación con librerías enlazadas

Código: [Seleccionar]
mkdir dynamic
g++ -c ../lib1.cpp -fPIC
g++ -shared -o liblib1.so lib1.o
sudo cp liblib1.so /usr/lib
g++ -o dynamic ../main.cpp -llib1

Salida
Código: [Seleccionar]
$ ./dynamic
30

Código: [Seleccionar]
$ ldd dynamic | grep lib1
liblib1.so => /usr/lib/liblib1.so (0x00007fb565dab000)

En caso de que el ejecutable no encuentre la librería te arrojaría un error:

Código: [Seleccionar]
$ ./dynamic
./dynamic: error while loading shared libraries: liblib1.so: cannot open shared object file: No such file or directory

Mas información sobre QT lo puedes encontrar en su wiki

https://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application
http://doc.qt.io/qt-5/windows-deployment.html
« Última modificación: 16 de Julio de 2017, 13:44:39 por tsk »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2575
Re:Video Tutorial Programación Qt C++
« Respuesta #81 en: 16 de Julio de 2017, 13:57:19 »
 
Ok, gracias, miraré de hacerlo así, para evitar problemas legales.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 5761
Re:Video Tutorial Programación Qt C++
« Respuesta #82 en: 16 de Julio de 2017, 16:43:27 »
Estuve mirando y dice esto:

Citar
Can create closed consumer devices

Y el unico posible es con la version paga. Dejando de lado el codigo, supuestamente no podrias hacer ningun producto comercial.¿ O quiere decir que deberias dar esquemas y todo lo demas del producto ?.

Desconectado tsk

  • PIC12
  • **
  • Mensajes: 78
Re:Video Tutorial Programación Qt C++
« Respuesta #83 en: 16 de Julio de 2017, 18:32:54 »
Lo que dice, según ellos es:

Citar
For instance, LGPLv3 explicitly forbids the distribution of closed consumer devices
https://www.qt.io/qt-news/qt-company-releases-qt-5-7-new-qt-3d-module-user-interface-library-leveraging-modern-c11-updated-licensing-offering/

En ningún lugar de la LGPLv3 prohíbe de esa forma su uso.

https://opensource.org/licenses/lgpl-3.0.html

https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic

Probablemente, según ellos sea porque tienen algunos componentes en GPLv3, y esos componentes tienen su enfoque a dispositivos móviles. Pero aquí lo que tenemos es que quiere hacer programas para Windows y Linux (incluido el Raspberry Pi).

Pero vamos, que esas líneas están puestas para que los desarrolladores las lean, no para abogados.

Además siempre hay formas de saltar esas restricciones.

Puedes tener una separación entre componentes a través de una API, por un lado los componentes GPL, que tu cliente puede instalar aparte, y los LGPL que te permiten tener tu código cerrado.

Segundo, con respecto a los esquemáticos, la GPL y LGPL sólo cubre los aspectos del software, en ningún lugar menciona los aspectos del hardware en el que los programas se ejecutan.

Edito para añadir un ejemplo:

Los productos de Linksys contienen software con LGPL, y aquí un ejemplo de una de las licencias
http://downloads.linksys.com/downloads/userguide/ea6200v1_1.1.41.162020.pdf
« Última modificación: 16 de Julio de 2017, 19:03:57 por tsk »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2575
Re:Video Tutorial Programación Qt C++
« Respuesta #84 en: 16 de Julio de 2017, 22:31:25 »
.

Si que lo han complicado, todo desde que en 2012 la empresa Digia adquiere los derechos de QT (según la Wiki), eso supongo que se corresponde con la liberación de la versión 5 de QT.

A mi ya me pareció muy raro el cambio de la página web de QT, antes la web tenía un aspecto mucho más cercano, típico de un proyecto open source, pero ahora tiene una pinta de página comercial que tira de espaldas.

Seguiré con QT, porque me parece la mejor opción para trabajar en C++ con varias plataformas y un entorno gráfico. La alternativa sería Code::Blocks con Wxwidgets, porque con VC++ solo puedo trabajar en Windows.

Una cosa que leí por algún sitio es que los widgets tipo "deslizantes" no estaban disponibles en QT (o al menos la gente se quejaba de eso en QT4), porque estaban patentados por Microsoft, sin embargo en la versión actual de QT Creator si que tengo deslizantes horizontales y verticales en la ventana de widgets.
« Última modificación: 16 de Julio de 2017, 22:38:11 por planeta9999 »

Desconectado tsk

  • PIC12
  • **
  • Mensajes: 78
Re:Video Tutorial Programación Qt C++
« Respuesta #85 en: 17 de Julio de 2017, 02:15:50 »
En si yo no veo que una opción sea mejor que otra, ya que todo depende del tipo de proyectos que desarrollemos.

Además de que Code Blocks también esta para linux, por lo que puedes usarlo en ambos entornos y si quieres usar las wxWidgets, toman en cuenta que también lo han usado para crear juegos como el 0.A.D.

https://play0ad.com/

De que es potente es bastante potente.

Si te preocupa el usar QT para tus proyectos comerciales, prueba http://www.copperspice.com/ es un fork de las QT.

Aunque también para desarrollar GUIs en C++ cuentas con las Gtk+, a parte de las wxWidgets, y tienes Glade para generar las ventas. Esta en LGPL y no te asustan para que no lo uses en productos comerciales sin pasar por caja.

Que te parece el siguiente
http://cegui.org.uk/

A pesar de estar pensado para la creación de juegos (http://store.steampowered.com/app/496460/Life_is_Feudal_Forest_Village/) puedes desarrollar cualquier tipo de aplicación.

Saliendo de C/C++ si quieres un entorno tipo RAD como Delphi, tienes Lazarus/Freepascal.

O si quieres crear interfaces más modernas, puedes usar NodeJS+Electron. Es multiplataforma y todo lo haces con Javascript, HTML y CSS, además puedes enlazar a librerías hechas en C++.

Y, al menos ninguno de ellos te quiere hacer pasar por caja para darte el permiso de desarrollar productos comerciales.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2575
Re:Video Tutorial Programación Qt C++
« Respuesta #86 en: 17 de Julio de 2017, 02:33:58 »
.

Hay tantas opciones, que al final marea. En principio pensé en usar VC++, pero como me puse con QT para desarrollos con la Raspberry, y como lo que quiero hacer ahora para Windows me interesa poderlo llevar también a Android, me decanté por QT.

Ahora ya estoy hecho un lío, entre los IDE y las librerías gráficas.

Centrando el tema, como IDE estaría Visual Studio, QT Creator y CodeBlocks, no se si hay alguno más a considerar. Y como librerías gráficas, las propias de VC++ solo para VC++, y para otros IDE las QT, Wxwidgets y Copperspice.

Como lenguaje de programación, si que tengo claro que me quedo con C++.


Sobre usar Copperspice, lo que me interesa es ver como se integra en cada IDE para manejar la interface gráfica. Aquí he encontrado algo para integrarlo en QT Creator, no se si hay algo parecido para CodeBlocks.

http://www.copperspice.com/docs/cs_overview/sample-toolchain.html

¿ O hay algún editor gráfico, específico para trabajar con Copperspice ?

« Última modificación: 17 de Julio de 2017, 02:45:23 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2575
Re:Video Tutorial Programación Qt C++
« Respuesta #87 en: 17 de Julio de 2017, 08:51:23 »
.

En este canal de Youtube también hay muchos tutoriales de QT y GTK+, en español.
https://www.youtube.com/user/duartecorporation/search?query=qt


 

anything