Sign in Join
Wiki copytemporary

Qt Interface/es: what changed

Revision 3 to 4. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1+_
2+ * 10 Capturas de pantalla
3+ * 11 Contribuir
4+ * 11.1 ¿Cómo agregar un nuevo control
5+ * 12 Lista de correo
6+_
7+
18## Introducción
29
3-   El conjunto de artefactos Qt4 está en desarrollo.
10+El conjunto de artefactos Qt4 está en desarrollo.
411
5-   Esta interfaz se basa en Qt4 y su correspondiente documentación está [aquí](http://doc.trolltech.com/4.5/).
12+Esta interfaz se basa en Qt4 y su correspondiente documentación está [aquí](<http://doc.trolltech.com/4.5/>).
613
7-## Guía de inicio rápida para Linux
14+## Otras Interfaces
815
9-   Lo primero que hay que hacer es ir a la [página web oficial](http://users.pandora.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html) del enlace y descargar los binarios Qt del enlace. Copia el archivo libqt4intf.so en el directorio */usr/lib/* o */usr/local/lib*. Ahora ejecuta *ldconfig* para actualizar la memoria tampón del enlazador. Puedes verificar el éxito de la operación mediante la ejecución de:
16+ * [[Lazarus known issues \(things that will never be fixed\|Lazarus known issues (things that will never be fixed)]]> "Lazarus known issues \(things that will never be fixed\)") \- Una lista de problemas de compatibilidad de interfaz.
17+ * [[Win32/64 Interface]] \- la interfaz winapi para Windows 95/98/Me/2K/XP/Vista, pero no para CE.
18+ * [[Windows CE Interface]] \- Para Pocket PC y Smartphones.
19+ * [[Carbon Interface]] \- La interfaz carbon para macOS.
20+ * [[Cocoa Interface]] \- La interfaz cocoa para macOS.
21+ * Interfaz Qt \- La interfaz Qt4 para *nix, macOS y las PDA basadas en linux.
22+ * [[GTK1 Interface]] \- gtk1 para *nix, macOS (X11), Windows.
23+ * [[GTK2 Interface]] \- gtk2 para *nix, macOS (X11), Windows.
24+ * [[GTK3 Interface]] \- gtk3 para *nix, macOS (X11), Windows.
25+ * [[fpGUI Interface]] \- Un conjunto de elementos gráficos completamente escrito en _Object Pascal', basados en la libería fpGUI con un kit de utilidades para plataforma cruzada.._
26+ * [[Custom Drawn Interface]] \- Un backend (parte no visible frente al frontend que el la parte que si vemos) LCL de plataforma cruzada, escrito completamente en Object Pascal dentro de Lazarus. El interface Lazarus para Android.
1027
11-```text
12- ldconfig -p | grep libqt4intf
13-```
28+### Consejos específicos de plataformas
1429
15-   Que dará un resulta parecido a este:
30+ * [[Windows Programming Tips]] \- Consejos de programación para escritorios Windows.
31+ * [[Linux Programming Tips]] \- Como ejecutar tareas de programación particulares en Linux.
32+ * [[macOS Programming Tips]] \- Instalación de Lazarus, utilides de interés, mandatos Unix y más.....
33+ * [[WinCE Programming Tips]] \- Utilizando la API telephone, enviando SMSes, y más ...
34+ * [[Android Programming]] \- Para smartphones Android y tabletas.
35+ * [[iPhone/iPod development]] \- Sobre como utilizar Object Pascal y diseñar aplicaciones iOS.
1636
17-```text
18- libqt4intf.so (libc6) => / usr/local/lib/libqt4intf.so
37+### Artículos sobre desarrollo de Interfaces
38+
39+ * [[Carbon interface internals|Las _interioridades_ de carbon]] \- Si quieres ayudar a mejorar la interfaz _carbon_.
40+ * [[Windows CE Development Notes|Notas de desarrollo winCE]] \- Para Pocket PC y Smartphones.
41+ * [[Adding a new interface|Añadiendo una nueva interfaz]] \- Cómo añadir un nuevo conjunto de artefactos gráficos.
42+ * [[LCL Defines|_Defines_ de la LCL]] \- Elegir la mejores opciones para compilar la LCL.
43+ * [[LCL Internals|Las _interioridades_ de la LCL]] \- Algo de información sobre el funcionamiento interno de la LCL.
44+ * [[Cocoa Internals]] \- Algo de información sobre el funcionamiento interno del widgetset de Cocoa.
45+
46+## Guía de inicio rápida para Linux
47+
48+Lo primero que hay que hacer es ir a la [página web oficial](<http://users.pandora.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html>) del enlace y descargar los binarios Qt del enlace. Copia el archivo libqt4intf.so en el directorio _/usr/lib/_ o _/usr/local/lib_. Ahora ejecuta _ldconfig_ para actualizar la memoria tampón del enlazador. Puedes verificar el éxito de la operación mediante la ejecución de:
1949```
50+ldconfig -p | grep libqt4intf
51+```
2052
21-   Si no funciona, tienes que comprobar los archivos de configuración en /etc/ld.so.conf.d/ o el archivo de configuración /etc/ld.so.conf, según tu distribución -que debe incluir la ruta en la que se copió el archivo libqt4intf.so.
53+Que dará un resulta parecido a este:
54+```
55+libqt4intf.so (libc6) => / usr/local/lib/libqt4intf.so
56+```
2257
23-   Ahora compila la LCL para Qt. Una vez abierto el compilado gtk normal de Lazarus. A continuación, ve al menú *Herramientas -\> Configurar "Construir Lazarus"*. Marca la LCL para "limpiar y construir (*clean+build*)", y todo lo demás a "Nada (*None*)". Ahora, en *Interfaz LCL* selecciona "qt (beta)", y haz clic en el botón "Construir". Si seleccionas *Guardar Opciones* debes ir luego ve al menú *Herramientas -\> Construir Lazarus*. Ahora, el LCL ha sido compilado para Qt.
58+Si no funciona, tienes que comprobar los archivos de configuración en /etc/ld.so.conf.d/ o el archivo de configuración /etc/ld.so.conf, según tu distribución -que debe incluir la ruta en la que se copió el archivo libqt4intf.so.
2459
25-   Para compilar un proyecto con Qt sólo hay que seleccionarlo como el *Widgetset* de destino en el cuadro de diálogo Opciones del compilador.
60+Ahora compila la LCL para Qt. Una vez abierto el compilado gtk normal de Lazarus. A continuación, ve al menú _Herramientas - > Configurar "Construir Lazarus"_. Marca la LCL para "limpiar y construir (_clean+build_)", y todo lo demás a "Nada (_None_)". Ahora, en _Interfaz LCL_ selecciona "qt (beta)", y haz clic en el botón "Construir". Si seleccionas _Guardar Opciones_ debes ir luego ve al menú _Herramientas - > Construir Lazarus_. Ahora, el LCL ha sido compilado para Qt.
2661
62+Para compilar un proyecto con Qt sólo hay que seleccionarlo como el _Widgetset_ de destino en el cuadro de diálogo Opciones del compilador.
63+
64+
65+
2766### Instalación de Qt4
2867
29-   La mayoría de las distribuciones tienen ahora los paquetes de Qt4. Si su distribución está basada en RPM se puede buscar un paquete qt4 aquí: <http://rpm.pbone.net/index.php3/stat/2/simple/2>\
68+La mayoría de las distribuciones tienen ahora los paquetes de Qt4. Si su distribución está basada en RPM se puede buscar un paquete qt4 aquí: <http://rpm.pbone.net/index.php3/stat/2/simple/2>
3069**La versión compatible debe ser Qt 4.5.0 o superior**
3170
3271### Problemas conocidos en Linux
3372
34-- Para distribuciones glibc \< 2.4 (antiguas, por ejemplo FC3), los usuarios deben compilar qt-x11 con -no-sse o se obtendrá un error de fallo de segmento (*segfaults*).
35-- **Qt-4.4.1** si las X11 \< 7.0 y glibc \< 2.4 (distribuciones antiguas) QPalette no devuelve buenos resultados para algunas paletas, por ejemplo QToolTip_palette ().
73+ * Para distribuciones glibc < 2.4 (antiguas, por ejemplo FC3), los usuarios deben compilar qt-x11 con -no-sse o se obtendrá un error de fallo de segmento (_segfaults_).
74+ * ~~**Qt-4.4.1** si las X11 < 7.0 y glibc < 2.4 (distribuciones antiguas) QPalette no devuelve buenos resultados para algunas paletas, por ejemplo QToolTip_palette ().~~
3675
3776## Guía de inicio rápido para Mac OS X
3877
39-   Instrucciones en el wiki [[Qt Interface Mac]].
78+Instrucciones en el wiki [[Qt Interface Mac]].
4079
4180## Guía de inicio rápido para PDAs y Smartphones
4281
43-   por favor, escríbeme
82+por favor, escríbeme
4483
4584## Guía rápida de inicio para Windows
4685
47-   No hay nada especial que decir para Windows, funciona igual que en Linux, y parecen menos buggy de win32 interfaz con algunos controles (TListView).    Sólo construir Lazarus como se menciona para Linux, el cambio a Qt en las opciones de compilador y eso es todo.
86+No hay nada especial que decir para Windows, funciona igual que en Linux, y parecen menos buggy de win32 interfaz con algunos controles (TListView). Sólo construir Lazarus como se menciona para Linux, el cambio a Qt en las opciones de compilador y eso es todo.
4887
4988### Instalación de Qt 4
5089
51-   Descargar la edición de código abierto Qt4 del [sitio web oficial](http://www.qtsoftware.com/downloads/), y se puede descargar la libqt4intf.dll desde [enlace FPC Qt4](http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html).
90+Descargar la edición de código abierto Qt4 del [sitio web oficial](<http://www.qtsoftware.com/downloads/>), y se puede descargar la libqt4intf.dll desde [enlace FPC Qt4](<http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html>).
5291
5392## Enlaces de Qt4
5493
55-   Esta interfaz utiliza el enlace Qt4 creado por Den Jean. Los enlaces son la colección de librerías c++ que las exportaciones de los métodos de los objetos como los procedimientos de Qt. La biblioteca (alrededor de 800kb en Linux) se compone de un único archivo. Archivo de manera que debe ser distribuido con su programa de LCL.
94+Esta interfaz utiliza el enlace Qt4 creado por Den Jean. Los enlaces son la colección de librerías c++ que las exportaciones de los métodos de los objetos como los procedimientos de Qt. La biblioteca (alrededor de 800kb en Linux) se compone de un único archivo. Archivo de manera que debe ser distribuido con su programa de LCL.
5695
57-   Usted puede encontrar más información acerca de los enlaces en el oficial [sitio](http://users.pandora.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html) y en [[Qt4 binding|enlace FreePascal Qt4]].
96+Usted puede encontrar más información acerca de los enlaces en el oficial [sitio](<http://users.pandora.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html>) y en [[Qt4 binding|enlace FreePascal Qt4]].
5897
59-   ¿Es que se informa de que puede ser posible vincular directamente a Qt 4, con algunos trucos. Muchos piensan que no lo es. Esto aún no se ha probado. Es de esperar que cualquiera de dichas vinculante será compatible con el utilizado actualmente una parte, por lo que el código de la interfaz no tiene que ser cambiado.
98+¿Es que se informa de que puede ser posible vincular directamente a Qt 4, con algunos trucos. Muchos piensan que no lo es. Esto aún no se ha probado. Es de esperar que cualquiera de dichas vinculante será compatible con el utilizado actualmente una parte, por lo que el código de la interfaz no tiene que ser cambiado.
6099
61100### La compilación de los enlaces
62101
63-   No es necesario compilar los enlaces uno mismo si se planea lanzar un software GPL. Hay disponibles binarios GPL en el sitio web de Den Jean. Si deseas liberar código no GPL, entonces debes compilar los enlaces utilizando la edición comercial de Qt.
64-
65-   **Paso 1** - Comenzar con la descarga de todos los archivos necesarios para compilar los enlaces.
102+No es necesario compilar los enlaces uno mismo si se planea lanzar un software GPL. Hay disponibles binarios GPL en el sitio web de Den Jean. Si deseas liberar código no GPL, entonces debes compilar los enlaces utilizando la edición comercial de Qt.
66103
67-- Descargar el código fuente de los enlaces. Ir a la página web oficial de los enlaces. Vínculo anterior.
68-- También Descargar el código fuente de Qt 4.5.2(3) para la plataforma deseada. Esta es la página de descarga: [1](http://www.trolltech.com/download/opensource.html)
104+**Paso 1** \- Comenzar con la descarga de todos los archivos necesarios para compilar los enlaces.
69105
70-   **Paso 2** - Descomprimir todos los archivos descargados. Escribe el directorio donde ha descargado el código fuente de Qt 4.5.2(3) y el escribe, en una consola, este comando:
106+ * Descargar el código fuente de los enlaces. Ir a la página web oficial de los enlaces. Vínculo anterior.
107+ * También Descargar el código fuente de Qt 4.5.2(3) para la plataforma deseada. Esta es la página de descarga: [[1]](<http://www.trolltech.com/download/opensource.html>)
71108
72- ./configure
109+**Paso 2** \- Descomprimir todos los archivos descargados. Escribe el directorio donde ha descargado el código fuente de Qt 4.5.2(3) y el escribe, en una consola, este comando:
110+```
111+./configure
73112 make
113+```
74114
75-   **Paso 3** - Ve al directorio donde has descargado y extraído los fuentes de *qt4pas* y edita el archivo *compile_lib.bash*. Cambia la ruta del código fuente de Qt 4.5.2(3) .
115+**Paso 3** \- Ve al directorio donde has descargado y extraído los fuentes de _qt4pas_ y edita el archivo _compile_lib.bash_. Cambia la ruta del código fuente de Qt 4.5.2(3) .
76116
77-   **Paso 4** - Ejecuta la macro llamada *compile_lib.bash*. Ahora debes tener un archivo llamado *libqt4intf.so.5.XXXX* donde XXXX es la versión del enlace QT, y de sus enlaces simbólicos *libqt4intf.so.5* y *libqt4intf.so*
117+**Paso 4** \- Ejecuta la macro llamada _compile_lib.bash_. Ahora debes tener un archivo llamado _libqt4intf.so.5.XXXX_ donde XXXX es la versión del enlace QT, y de sus enlaces simbólicos _libqt4intf.so.5_ y _libqt4intf.so_
78118
79119## Mapa de ruta para la interfaz de Qt4
80120
81-   Trasladado aquí: [[Roadmap|Roadmap#Widgetset_dependent_components]]
121+Trasladado aquí: [[Roadmap|Roadmap#Widgetset_dependent_components]]
82122
83-## ''Define" condicionales aceptados por la interfaz Qt
123+## _Define" condicionales aceptados por la interfaz Qt_
84124
85-   Trasladado aquí: [[LCL Defines|LCL_Defines#Qt_defines]]
125+Trasladado aquí: [[LCL Defines|LCL_Defines#Qt_defines]]
86126
87127## Capturas de pantalla
88128
89-![](/wiki-images/8/87/Much_qt_progress.png)\
90-**Screenshoots Más**\
91-*[Qt Lazarus IDE corriendo en Linux (kernel 2.6.12, Xorg-6.8.2, KDE-3.4.0)](http://wiki.lazarus.freepascal.org/Image:Linuxqtide.png)\
92-*[Qt Lazarus IDE corriendo en Mac OS X 10.4.10](http://wiki.lazarus.freepascal.org/Image:macosxqt.png)
129+[![Much qt progress.png](/wiki-images/8/87/Much_qt_progress.png)](</File:Much_qt_progress.png>)
93130
131+**Screenshoots Más**
132+
133+ * [[Image:Linuxqtide.png|Qt Lazarus IDE corriendo en Linux (kernel 2.6.12, Xorg-6.8.2, KDE-3.4.0)]]
134+
135+ * [[Image:macosxqt.png|Qt Lazarus IDE corriendo en Mac OS X 10.4.10]]
136+
94137## Contribuir
95138
96139### ¿Cómo agregar un nuevo control
97140
98-   Por ejemplo *TButton*.
99-
100-   *TButton* se define en *LCL/buttons.pp*. Esta es la parte de la LCL independiente de la plataforma, y que es utilizada por el programador LCL normal.    La clase de los artefactos está en *LCL/widgetset/wsbuttons.pp*. Esta es la base, independiente de la plataforma, para todos los artefactos (Qt, carbon, GTK, win32, ...).    La clase de la interfaz Qt está en *LCL/interfaces/qt/qtwsbuttons.pp*:
141+Por ejemplo _TButton_.
101142
102-``` pascal
103- TQtWSButton = class(TWSButton)
104- private
105- protected
106- public
107- class function CreateHandle(const AWinControl: TWinControl;
108- const AParams: TCreateParams): TLCLIntfHandle; override;
109- end;
143+ _TButton_ se define en _LCL/buttons.pp_. Esta es la parte de la LCL independiente de la plataforma, y que es utilizada por el programador LCL normal. La clase de los artefactos está en _LCL/widgetset/wsbuttons.pp_. Esta es la base, independiente de la plataforma, para todos los artefactos (Qt, carbon, GTK, win32, ...). La clase de la interfaz Qt está en _LCL/interfaces/qt/qtwsbuttons.pp_ :
110144```
111-
112-   Toda clase, que se implementa efectivamente algo debe estar registrada. Ver la sección de inicialización al final de la unidad *qtwsXXX.pp*:
145+TQtWSButton = class(TWSButton)
146+ private
147+ protected
148+ public
149+ class function CreateHandle(const AWinControl: TWinControl;
150+ const AParams: TCreateParams): TLCLIntfHandle; override;
151+ end;
152+```
113153
114-``` pascal
115- RegisterWSComponent (TQtButton, TQtWSButton);
154+Toda clase, que se implementa efectivamente algo debe estar registrada. Ver la sección de inicialización al final de la unidad _qtwsXXX.pp_ :
116155```
156+RegisterWSComponent (TQtButton, TQtWSButton);
157+```
117158
118-   *TQtWSButton* sobreescribe *CreateHandle* para crear un *QPushButton* de Qt.    El código es corto y puede ser fácilmente adaptado para otros controles como *TCheckBox*.    Recuerda que todos los controles de la interfaz Qt tienen una clase de ayuda (*helper class*) en *qtprivate.pp*, y también es necesario agregar una clase para el nuevo control. Esto no es difícil.
159+ _TQtWSButton_ sobreescribe _CreateHandle_ para crear un _QPushButton_ de Qt. El código es corto y puede ser fácilmente adaptado para otros controles como _TCheckBox_. Recuerda que todos los controles de la interfaz Qt tienen una clase de ayuda (_helper class_) en _qtprivate.pp_ , y también es necesario agregar una clase para el nuevo control. Esto no es difícil.
119160
120-   Observa también que *DestroyHandle* debe utilizarse para liberar la memoria utilizada por el control.
161+Observa también que _DestroyHandle_ debe utilizarse para liberar la memoria utilizada por el control.
121162
122163## Lista de correo
123164
124-    Hay una [lista de correo Lazarus-Qt](http://lists.lazarus.freepascal.org/mailman/listinfo/qt) de apoyo y para hablar sobre el desarrollo de esta interfaz.
165+Hay una [lista de correo Lazarus-Qt](<http://lists.lazarus.freepascal.org/mailman/listinfo/qt>) de apoyo y para hablar sobre el desarrollo de esta interfaz.
125166
126167---
127-*From the Free Pascal wiki, page "Qt Interface/es", as it stood on 2020-02-23 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
128-Category: Castellano
129-Category: Español
168+*From the Free Pascal wiki, page "Qt Interface/es", as the Internet Archive kept it on 2026-02-06, last changed on 2020-02-24. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history