2010-03-17 13 views
7

¿Todas las aplicaciones Qt requieren la instalación de KDE? ¿Es suficiente si el tiempo de ejecución de Qt está instalado junto con GNOME? ¿Puedo hacer que una aplicación Qt se vea exactamente como una aplicación GTK bajo GNOME? ¿Podría alguien señalarme un artículo que detalla la relación entre Qt, GTK, KDE, GNOME, X?¿Las aplicaciones Qt requieren KDE?

+0

En Linux, ¿es correcto el siguiente? - La aplicación usa Qt para dibujar su UI. Qt dibuja a X y X se dibuja en el hardware? ¿Es posible simplemente iniciar el servidor X y ejecutar una aplicación Qt sin que se cargue GNOME o KDE? ¿Si es así, cómo? ¿Cómo entran los administradores de ventanas en la imagen? – BlueSilver

+0

¿Dibuja Qt directamente en X o lo hace a través de un administrador de ventanas? ¿Utiliza Qt un Window Manager para dibujar ventanas, o los gestores de ventanas usan Qt para renderizar ventanas? – BlueSilver

Respuesta

14

Cuando se ejecuta en X, las aplicaciones Qt y el Administrador de ventanas son ambos clientes X. Ambos se comunican con un XServer para dibujar, recibir entrada o manipular ventanas. El XServer sabe sobre el hardware y maneja el dibujo a un monitor específico, recibiendo la entrada del mouse, etc.

Es posible ejecutar una aplicación Qt sin un entorno de escritorio, e incluso sin un administrador de ventanas (aunque no podrá para mover/cambiar el tamaño del programa). Los gestores de ventanas, etc. son solo programas X normales que se ejecutan y que proporcionan su propia funcionalidad, pero que solo interactúan indirectamente entre sí. No dependen de otro programa específico en ejecución.

El estado de las ventanas (posición, ordenamiento, contenido) es administrado por el Servidor X, y puede ser consultado y modificado por un programa como el administrador de ventanas.

El administrador de ventanas maneja el tamaño, el posicionamiento y la decoración de las ventanas. Recibe eventos cuando se crea/cambia una ventana para que pueda hacerlo. Dibuja el marco alrededor de la ventana y maneja los clics al cerrar, maximizar, arrastra de la ventana, etc.

La aplicación Qt se dibuja dentro de la ventana principal y maneja los clics del mouse y las teclas dentro de la ventana.

Qt puede comunicarse con el administrador de ventanas enviando XEvents desde la ventana (redimensionar/mover) o configurando WM Hints (diálogo, importante, no redimensionable). Estos pasan por el XServer y no tendrán ningún efecto si ningún programa los está escuchando.

+0

gracias por la información. Me gustaría saber esto con mayor detalle. ¿Podrías proporcionarme enlaces a cualquier recurso en la red? – BlueSilver

+1

Puede intentarlo: http://www.sbin.org/doc/Xlib/ http://www.freedesktop.org/wiki/ – fgb

6

Bueno, viceversa. Históricamente KDE (y ahora) se construyó en el marco Trolltech Qt C++. Qt C++ ahora es multiplataforma y eso hace que las aventuras de KDE sean más fluidas en muchas plataformas. Así que en breve: KDE depende de Qt :)

12

Ejecuto Qt aplicaciones regularmente en mi Mac, y ocasionalmente en Windows, y estoy absolutamente seguro de que ni las Macs ni las PC con Windows tienen instalado KDE (ni Gnome para el caso)) Entonces, a su primera pregunta, la respuesta es "definitivamente no" :-).

8

Qt es solo una biblioteca de UI, da la casualidad de que KDE está escrito en/usando Qt.

Puede escribir una aplicación utilizando Qt y ejecutarla con gnome instalado mientras tenga instalada la biblioteca de Qt.

Sí, puede hacer que las aplicaciones Qt se vean como aplicaciones gnome, siempre que utilice el tema que está utilizando el sistema. (No estoy seguro de cómo saberlo en general) Uso varias aplicaciones basadas en Qt UI escritas en python bajo ubuntu con gnome y usan el tema muy bien.

+2

Nitpicking ... Es Qt ("lindo"), no QT (QuickTime ™). "escrito en Qt" no suena bien ya que Qt no es un lenguaje de programación. Las cosas están escritas en C, C++, inglés, francés ... KDE * usa * o * enlaces a * Qt. – Juliano

+0

Bien hecho un par de cambios. A saber QT -> Qt – percent20

1

Cuando desarrolla una aplicación Qt, una de las opciones que tiene es incluir widgets o bibliotecas de KDE en la aplicación. Si hace esto, entonces requerirá que se instalen algunos paquetes de KDE (en Linux) o bibliotecas en su máquina de destino, así como en los Qt. No estoy seguro de cuál es la disponibilidad de estos en Windows o Mac, aunque hay algún tipo de intento de transferir KDE a Windows, en curso.

Cuestiones relacionadas