2010-04-07 2 views
0

Nous avons une situation (peut-être?) Inhabituelle où nous avons beaucoup d'applications construites sur Qt 4 et certaines applications construites en Java (Swing) mais nous utilisez KDE 3. Nous utilisons Red Hat Enterprise Linux 5 et comme il n'y a pas de version officielle de KDE 4, la mise à niveau vers KDE 4 n'est pas une option possible.Nous vous conseillons de déplacer les applications Qt 4 et Java entre les postes de travail sur KDE 3

L'un des aspects de notre projet dont nos clients ont besoin est la possibilité d'ouvrir certaines applications sur différents postes de travail. Après avoir passé au crible l'API de KDE 3, il semble que ce soit le moyen principal de le faire en utilisant la fonction KWin :: setOnDesktop. Malheureusement, l'utilisation de cette fonction nécessite une liaison avec les bibliothèques de KDE (libkdecore) et que vous pouvez inclure les fichiers d'en-tête de KDE 3, qui incluent un tas de choses Qt 3. Par conséquent, aucune application Qt 4 ne peut directement parler à KDE. Le problème pour les applications Java est que l'obtention de l'identifiant de la fenêtre X11 est très pénible car elle nécessite de passer par des appels JNI. (Il existe une page pratique StackOverflow sur les interactions Java et X11 here.)

Est-ce que quelqu'un a des conseils sur la façon de déplacer des fenêtres entre des bureaux dans cette situation? Merci pour vos idées.

Répondre

1

KDE4 dispose également d'une méthode setOnDesktop qui parlera avec le gestionnaire de fenêtres KWin de KDE3 (ou tout autre gestionnaire de fenêtres sain). C'est dans la classe KWindowSystem. Vous pouvez l'utiliser dans vos applications.

Le fait est que la méthode setOnDesktop utilisera le protocole X11 sous-jacent pour faire le travail. Peu importe que l'application soit écrite avec une technologie et le gestionnaire de fenêtres dans une autre.

Questions connexes