Qt (Español)

Esta traducción de
Qt
fue revisada el
2020-06-09
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
KDE
Apariencia uniforme para Qt y aplicaciones GTK
GTK
Qt
es una aplicación multiplataforma y herramientas de widget que utiliza el estandar C++ pero quehace un uso extensivo de un generador especial de código (llamado
Meta Object Compiler
o
moc
) junto con varios macros para enriquecer el lenguaje. Algunas de sus características más importantes son:
Se ejecuta en la mayoría de entornos de escritorio y muchos de los entornos móviles.
Soporte de internacionalización extendido.
Una librería completa que provee acceso a base de datos SQL, parseo XML, tratamiento de hilos, soporte de red y una interfaz de programación de aplicaciones (API) multiplataforma unificada para el manejo de archivos.
El framework Qt es la base del software comunitario
KDE
como de otras aplicaciones importantes de código abierto y propietarias como
VLC
,
VirtualBox
,
Mathematica
y muchas otras.
Instalación
Qt 5.x está disponible en los
repositorios oficiales
. Versiones tradicionales de Qt (4.x y 3.x) estan disponibles desde el
Arch User Repository (Español)
. Pueden
instalarse
con los siguientes paquetes:
Qt 5.x
está disponible en el paquete
qt5-base
con su documentación en el paquete
qt5-doc
AUR
.
Qt 4.x
está disponible en el paquete
qt4
AUR
con su documentación en el paquete
qt4-doc
AUR
del AUR.
Qt 3.x
está disponible desde el AUR en el paquete
qt3
AUR
con su documentación en el paquete
qt3-doc
AUR
[
enlace roto
: package not found]
del AUR.
Herramientas Qt por defecto
Instalando
qtchooser
AUR
[
enlace roto
: package not found]
puede crear binarios Qt en
/usr/bin
(p. ej.
qmake
), esta apunta por defecto a las versiones Qt5 (p. ej.
qmake-qt5
), que apunten a versiones anteriores de dichas herramientas (p. ej.
qmake-qt4
o
qmake-qt3
).
Advertencia
qtchooser
AUR
[
enlace roto
: package not found]
ahora está en conflicto con
qt5-base
. Puede instalarlo en /usr/local si realmente lo necesita pero no está oficialmente soportado. Vea
FS#51308
.
Utilizar variables de entorno
Para definir las herramientas Qt por defecto puede crear la
variable de entorno
QT_SELECT
. Por ejemplo, para utilizar Qt4 establezca
QT_SELECT=4
.
Utilizar ficheros de configuración
Puede establecer las herramientas Qt por defecto creando un enlace simbólico
~/.config/qtchooser/default.conf
a uno de los ficheros
.conf
que están en el directorio
/etc/xdg/qtchooser/
. Por ejemplo, para Qt4 creé un enlace simbólico desde
/etc/xdg/qtchooser/4.conf
a
~/.config/qtchooser/default.conf
:
$ ln -s
/etc/xdg/qtchooser/4.conf
~/.config/qtchooser/default.conf
Aspecto
Qt5
Qt5 decide qué estilo usar basandose en que entorno de escritorio se esta utilizando:
En KDE Plasma actualmente utiliza el estilo Qt seleccionado. Se puede configurar utilizando los
Ajustes del sistema KDE
(
systemsettings
). Estos ajustes se pueden encontrar en
Aspecto > Estilo de las aplicaciones > Estilo de la aplicación
.
Otros entornos de escritorio utilizan Fusion.
Para obligar un estilo específico puede establecer la
variable de entorno
QT_STYLE_OVERRIDE
. Establezca la variable a
gtk2
si quiere utilizar el tema
GTK
.
Nota
Necesitará instalar los plugins de aspecto de Qt mencionados abajo para conseguir el estilo GTK
Las aplicaciones Qt5 también soportan la bandera
-style
que se puede utilizar para lanzar aplicaciones Qt5 con un estilo específico.
Los siguientes aspectos están incluidos en Qt5:
Fusion
,
Windows
. Otros se pueden instalar desde los repositorios oficiales:
Breeze
— Arte, estilos y recursos para el estilo visual Breeze para el escritorio Plasma Desktop.
https://invent.kde.org/plasma/breeze
||
breeze
Oxygen
— Estilo KDE Oxygen.
https://invent.kde.org/plasma/breeze
||
oxygen
QtCurve
— Un conjunto de estilos de widgets configurables para KDE y Gtk.
https://invent.kde.org/system/qtcurve
||
qtcurve-qt5
[
enlace roto
: package not found]
Adwaita-Qt
— Estilos para conseguir que las aplicaciones Qt se parezcan al entorno GNOME.
https://github.com/MartinBriza/adwaita-qt
||
adwaita-qt5
AUR
Qt style plugins
— Plugins para estilos adicionales de Qt5 incluido
GTK
,
Cleanlooks
,
Motif
,
Plastique
.
https://code.qt.io/cgit/qt/qtstyleplugins.git
||
qt5-styleplugins
AUR
Kvantum
— Motor de temas basados en SVG personalizable con una gran variedad de estilos incorporados incluido imitaciones de algunos de los temas más populares de GTK como
Adapta
,
Arc
,
Ambiance
https://github.com/tsujan/Kvantum/tree/master/Kvantum
||
kvantum
Qt4
Las aplicaciones Qt4 intentarán imitar el comportamiento del entorno de escritorio en el que se ejecuta a no haya ser que encuentren algunos problemas o ajustes codificados.
En KDE Plasma actualmente utiliza el estilo Qt seleccionado. Se puede configurar utilizando los
Ajustes del sistema KDE
(
systemsettings
). Estos ajustes se pueden encontrar en
Aspecto > Estilo de las aplicaciones > Estilo de la aplicación
.
Otros entornos de escritorio utilizan Windows.
Para aquellos que quieran cambiar el aspecto y la sensación de las aplicaciones Qt4 la herramienta GUI de
configuración Qt
(
qtconfig-qt4
) está proporcionada por el paquete
qt4
AUR
. Ofrece una interfaz simple para configurar la apariencia de las aplicaciones Qt4 incluido el estilo, colores, fuentes y muchas más opciones.
Nota
Si utiliza el estilo
GTK
los ajustes de color y fuentes se ignorarán y se heredarán de GTK 2.
Qt mantiene toda la información de configuración en
/etc/xdg/Trolltech.conf
(todo el sistema) o en
~/.config/Trolltech.conf
(específico por usuario). Es difícil navegar por el archivo porque contiene mucha información que no está relacionada con la apariencia pero cualquier ajuste que añada al final del archivo sobrescribirá cualquier valor previo (asegúrese de que añade sus modificaciones debajo de la cabecera de [Qt]).
Por ejemplo, para cambiar el tema a QtCurve añada:
~/.config/Trolltech.conf
...
[Qt]
style=QtCurve
Los siguientes estilos están incluidos en Qt4:
CDE
,
Cleanlooks
,
GTK
,
Motif
,
Plastique
,
Windows
. Otros se pueden instalar desde los repositorios oficiales o desde el
AUR
(muchos están escritos para el escritorio KDE Plasma):
Breeze
— Arte, estilos y recursos para el estilo visual Breeze para el escritorio Plasma Desktop.
https://invent.kde.org/plasma/breeze
||
breeze-kde4
AUR
[
enlace roto
: package not found]
Adwaita-Qt
— Estilos para conseguir que las aplicaciones Qt se parezcan al entorno GNOME.
https://github.com/MartinBriza/adwaita-qt
||
adwaita-qt4
AUR
[
enlace roto
: package not found]
Plantillas de estilos Qt
Una forma interesante para personalizar el aspecto y la sensación de una aplicación Qt es utilizar plantillas de estilos que son simples archivos CSS. Utilizando plantillas de estilos puede cambiar la apariencia de cada widget de la aplicación.
Para ejecutar una aplicación con un estilo diferente simplemente ejecute:
$ qt_application -stylesheet
style.qss
Para más información en plantillas de estilos Qt vea la
documentación oficial
o otros
tutoriales
. Como ejemplo de una plantilla vea esta
modificación de Dolphin
.
GTK y Qt
Si tiene aplicaciones GTK y Qt puede que no se vean exactamente bien unidas. Si desea que su estilo GTK coincida con sus estilos Qt lea
look uniforme para las aplicaciones Qt y GTK
.
Configuración de aplicaciones Qt5 en otros entornos que KDE Plasma
A diferencia de Qt4, Qt5 no tiene una utilidad qtconfig para configurar fuentes, iconos y estilos. En lugar de eso Qt5 intentará utilizar los ajustes del entorno de escritorio en ejecución. En KDE Plasma o GNOME esto funciona bien pero en otros entornos de escritorio menos populares o gestores de ventanas puede resultar que los iconos desaparezcan en las aplicaciones Qt5. Una forma de resolver esto es ejecutar un falso entorno de escritorio estableciendo
XDG_CURRENT_DESKTOP=KDE
o
GNOME
y después utilizar la correspondiente aplicación de configuración para establecer el conjunto deseado de iconos.
Otra solución proporcionada por el paquete
qt5ct
que proporciona un Qt5 QPA independiente del entorno de escritorio y de la herramienta de configuración. Después de instalar el paquete ejecute
qt5ct
para establecer un tema de iconos y establecer la
variable de entorno
QT_QPA_PLATFORMTHEME=qt5ct
para que las aplicaciones Qt tomen dichos ajustes. Alternativamente puede utilizar
--platformtheme qt5ct
como argumento de la aplicación Qt5.
Si se recibe los siguientes errores y algunos iconos no aparecen en algunas aplicaciones instale
oxygen
y
oxygen-icons
:
Icon theme "oxygen" not found.
Icon theme "oxygen" not found.
Error: standard icon theme "oxygen" not found!
Desarrollo
Plataformas soportadas
Qt soporta la mayoría de plataformas que están disponibles a dia de hoy, incluso las mas oscuras, con más ports apareciendo de vez en cuando. Para una lista más completa vea el
artículo de la Wikipedia Qt
.
Android
Antes de nada necesita el
Android SDK
y el NDK. Instale el SDK
android-sdk
AUR
(algunas herramientas se han quitado) o
android-sdk-25.2.5
AUR
[
enlace roto
: package not found]
y el NDK
android-ndk
AUR
desde el
AUR
o utilizando
Android Studio
.
SDK requiere de
OpenJDK
en su version <= 8. En estos momentos está disponibles el
OpenJDK
en su versión 7 y 8 pero, para evitar problemas de construcción más tarde, utilice este último.
Lo siguiente que va a necesitar es Qt 5 para Android. Puede instalarlo desde el
AUR
como se describe debajo o construirlo usted mismo. Puede encontrar las instrucciones para la compilación están en la
wiki
de Qt.
En caso de problemas puede querer visitar los
problemas conocidos
.
android-armv7a-eabi-qt5
AUR
[
enlace roto
: package not found]
- armeabi-v7a
android-x86-qt5
AUR
[
enlace roto
: package not found]
- x86
android-x86-64-qt5
AUR
[
enlace roto
: package not found]
- x86_64
O puede utilizar un
instalador Qt
[
enlace roto
2023-05-06]
. Para un listado completo vea los
instaladores oficiales Qt
.
Herramientas
Las siguientes son herramientas oficiales Qt:
Qt Creator
— Un IDE multiplataforma a medida de Qt que soporta todas sus características.
https://doc.qt.io/qtcreator/
||
qtcreator
Qt Linguist
— Un conjunto de herramientas que acelera la traducción y la internacionalización de aplicaciones Qt.
https://doc.qt.io/qt-5/qtlinguist-index.html
|| Qt 5:
qt5-tools
, Qt 4:
qt4
AUR
Qt Assistant
— Un lector de documentación redistribuido y configurable para los archivos
qch
de Qt.
https://doc.qt.io/qt-5/qtassistant-index.html
|| Qt 5:
qt5-tools
, Qt 4:
qt4
AUR
Qt Designer
— Un potente constructor de diseños y formularios multiplataforma con GUI para los widgets Qt.
https://doc.qt.io/qt-5/qtdesigner-manual.html
|| Qt 5:
qt5-tools
, Qt 4:
qt4
AUR
Qt Quick Designer
— Un editor visual para los archivos QML que soportan WYSIWYG. Le permite rápidamente diseñar y construir aplicaciones rápidas Qt y componentes desde cero.
https://doc.qt.io/qtcreator/creator-qtquickdesigner-plugin.html
||
qtcreator
qmlscene
— Una herramienta para cargar documentos QML que hace que desarrollar y depurar aplicaciones QML rápidamente sea fácil.
https://doc.qt.io/qt-5/qtquick-qmlscene.html
|| Qt 5:
qt5-declarative
, Qt 4 QML Viewer:
qt4
AUR
qmake
— Una herramienta que ayuda a simplificar el proceso de compilación para el desarrollo de proyectos compatibles con distintas plataformas, similar a
cmake
pero con menos y mas específicas opciones para aplicaciones Qt.
https://doc.qt.io/qt-5/qmake-manual.html
|| Qt 5:
qt5-base
, Qt 4:
qt4
AUR
uic
—  Una herramienta que lee los ficheros XML
*.ui
y genera los ficheros C++ correspondientes.
https://doc.qt.io/qt-5/uic.html
|| Qt 5:
qt5-base
, Qt 4:
qt4
AUR
rcc
— Una herramienta que se utiliza para incrustar recursos (como fotos) dentro de la aplicación Qt en el proceso de compilación. Funciona generando un archivo fuente C++ que contiene los datos especificados en un archivo de recursos Qt (.qrc).
https://doc.qt.io/qt-5/rcc.html
|| Qt 5:
qt5-base
, Qt 4:
qt4
AUR
moc
— Una herramienta que maneja las extensiones C++ de Qt (las señales y el mecanismos de ranuras, la información de tipos en tiempo de ejecución, el sistema de propiedades dinámico, etc.).
https://doc.qt.io/qt-5/moc.html
|| Qt 5:
qt5-base
, Qt 4:
qt4
AUR
Enlaces
Qt tiene enlaces de todos los lenguajes más populares, para una lista completa vea
esta lista
.
Los siguientes ejemplos muestran un pequeño '¡Hola mundo!' en una ventana.
C++
Paquete:
qt5-base
Web:
https://www.qt.io/developers/
Compilación:
g++ $(pkg-config --cflags --libs Qt5Widgets) -fPIC -o hello hello.cpp
Ejecutar con:
./hello
hello.cpp
#include <QApplication>
#include <QLabel>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QLabel hola("¡Hola mundo!");

    hola.show();
    return app.exec();
}
QML
Paquete:
qt5-declarative
.
Web:
https://doc.qt.io/qt-5/qtquick-qmlscene.html
Ejecutar con:
qmlscene hello.qml
hello.qml
import QtQuick 2.3

Rectangle {
    id: page
    width: 400; height: 100
    color: "lightgray"

    Text {
        id: holaText
        text: "¡Hola mundo!"
        anchors.horizontalCenter: page.horizontalCenter
        anchors.verticalCenter: page.verticalCenter
        font.pointSize: 24; font.bold: true
    }
}
Python (PyQt)
Paquete:
python-pyqt5
- Enlaces de python 3
python2-pyqt5
[
enlace roto
: package not found]
- Enlaces de python 2
Web:
https://riverbankcomputing.com/software/pyqt/intro
Ejecutar con:
python hello-pyqt.py
o
python2 hello-pyqt.py
.
hello-pyqt.py
import sys
from PyQt5 import QtWidgets

app = QtWidgets.QApplication(sys.argv)
label = QtWidgets.QLabel("¡Hola mundo!")

label.show()
sys.exit(app.exec_())
Python (PySide2)
Paquete:
pyside2
AUR
Web:
https://wiki.qt.io/Qt_for_Python
Ejecutar con:
python hello-pyside.py
hello-pyside2.py
import sys
from PySide2.QtWidgets import QApplication, QLabel

app = QApplication(sys.argv)
label = QLabel("¡Hola mundo!")

label.show()
sys.exit(app.exec_())
C#
Vea
QtSharp
.
Solución de problemas
Desactivar/Cambiar el comportamiento del log de journal Qt
Cuando se utiliza 
When using
KDE
y/o cualquier otra información de depuración Qt del
entorno de escritorio
es frecuente que se guarde en el
registro de systemd
.
Establezca
QT_LOGGING_RULES
como una
variable de entorno
para cambiar este comportamiento, p. ej. para desactivar completamente el registro:
/etc/environment
QT_LOGGING_RULES='*=false'
Para desactivar solo el registro del depurador utilice
QT_LOGGING_RULES="*.debug=false"
.
Tema de iconos no se aplica
Desde Qt 5.1 el soporte SVG se ha movido a un módulo. Desde que
qt5-base
no depende de
qt5-svg
puede ocurrir que
qt5-base
este instalado pero
qt5-svg
no. Esto causa un comportamiento no deseado en el comportamiento con el tema de iconos. Desde que no se soporta SVG los iconos se omiten silenciosamente y hace que parezca que el tema de iconos no se esta utilizando. Instalando explícitamente
qt5-svg
soluciona el problema.
El tema no se aplica a las aplicaciones root
Como el fichero de temas del usuario (
$XDG_CONFIG_HOME/Trolltech.conf
) no se puede leer desde otras cuentas el tema seleccionado no se aplicará a las
aplicaciones X que se ejecuten como root
.
Las posibles soluciones incluyen:
Creación de enlaces simbólicos, p. ej.
# ln -s /home/[username]/.config/Trolltech.conf /etc/xdg/Trolltech.conf
Configurar un archivo de tema para todo el sistema:
/etc/xdg/Trolltech.conf
Ajustar el tema como root.
Estilo Qt4 no se respeta
Si las aplicaciones puras Qt4 (no KDE) no toman su estilo seleccionado Qt4 probablemente necesite decirle a Qt4 cómo encontrar los estilos de KDE (Oxygen, Phase etc.). Necesita ajustar la
variable de entorno
QT_PLUGIN_PATH
. Por ejemplo:
QT_PLUGIN_PATH=$HOME/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/
qtconfig-qt4
debe ser capaz de encontrar sus estilos de kde y todo volverá a verse bien de nuevo.
Alternativamente puede crear un enlace simbólico desde su directorio de estilos de Qt4 a uno de los estilos de KDE4:
# ln -s /usr/lib/{kde,qt}4/plugins/styles/
theme_name
Todas las aplicaciones basadas en Qt5 fallan al ejecutarse después de una actualización de Qt5
Si recibe un error similar a este
Qt FATAL: Cannot mix incompatible Qt library (version 0x50900) with this library (version 0x50901)
probablemente esté utilizando una plataforma de temas Qt5 o un plugin de estilo que no se ha reconstruido en la última versión de Qt5. Normalmente estos utilizan cabeceras privadas de Qt, es decir, que dependen de una versión exacta de Qt y no simplemente una coincidencia de nombre. Intente adivinar que estilo está utilizando estableciendo las variables de entorno
QT_STYLE_OVERRIDE
y
QT_QPA_PLATFORMTHEME
y reconstruya el paquete del AUR que lo proporciona.
Véase también
Web oficial
Documentación Qt
Planeta Qt