9
votes

Avez-vous une idée d'exécution des signaux QT / Slots sur le réseau?

Nous allons exécuter une interface graphique distante sur quelques PC, tous communiquant avec un serveur central où l'application principale est en cours d'exécution. Au lieu de pirater notre propre protocole réseau manuel et une couche de marshalling pour des presses à boutons et divers événements, mon espoir est que cela pourrait être résolu plus intelligemment.

En effet, il serait obligé, si vous pouviez autogénérer des procurations de réseau pour ces objets QT ou connecter des signaux / emplacements de connexion à une interface RPC, ou quelque chose comme ça.

  • Écrire un générateur de code basé sur les fichiers .ui de Qt devrait être faisable, mais peut-être que quelqu'un d'autre a essayé cela avant (avec ou sans succès)?

  • Une autre idée serait d'utiliser PYQT et un mécanisme de Python pour des objets proxy en réseau.

  • échec des éléments spécifiques QT, comment résoudre l'interface graphique distante en général?

    (Utiliser Web Server / Client n'est pas correct, car nous avons besoin de notre style QT et probablement une interface graphique plus rapide avec plus de widgets de fantaisie.)


0 commentaires

3 Réponses :


1
votes

Lors de la recherche de Google pour "Gui Remote QT", j'ai rencontré Ce projet appelé Vedga. Il est basé sur qt et brièvement ce qu'il fait:

Vedga est une boîte à outils pour le développement Applications de GUI réseau. Il permet le développeur pour simplement écrire du code en utilisant le style de programmation QT pour le côté serveur et oublier le côté client.

Cela pourrait valoir la peine d'être regardé. Ce serait bien si vous vérifiez et postez vos observations à ce sujet pour une référence future.


1 commentaires

Semble un peu mort .. Dernière commission de 2002.



0
votes

Je ne résoudrais pas ce problème avec un code d'écriture. J'utiliserais les outils qui existent déjà.

Il s'agit de RDP (Terminal Services) pour Windows ou simplement X (trivial, en raison du support réseau intégré) pour tout autre système d'exploitation.


1 commentaires

Tout lien pour configurer RDP pour Windows pour résoudre mon problème? Je n'ai jamais utilisé RDP, je n'ai donc aucune idée de quoi s'attendre en termes de performance ou de difficulté de mise en œuvre.



9
votes

Le Library d'extension QXT pour QT a un qxtrpcpeer classe

qxtrpcpeer est un outil qui encapsule Qt signaux et les transmet sur un connexion réseau. Le signal est remplacé par la suite sur le recevant la fin de la connexion.

Dernier édition (Commentaire de OP pertinent Publié ci-dessous le 26 février 2011 à 16:23):

Une mise à jour 1,5 ans après. Nous utilisons QxtrpCpeer dans notre logiciel de production depuis un an maintenant. Aucun problème que ce soit.

Dernier édition (en op depuis 2015-05-22):

LIBQXT n'est plus maintenu, à partir de 0,6,6,6.2, car la maintenance des modifications internes de l'API est trop de travail pour les auteurs. Certaines parties pourraient toujours être utilisables, mais vous devrez le maintenir vous-même.


5 commentaires

Toute expérience avec elle? Pourrait-il fonctionner comme une alternative aux sockets + sérialisation?


Semble fonctionner bien. Les fichiers include où un peu désordonnés pour obtenir la droite (si on n'utilise pas qmake, ce que nous ne faisons pas), mais j'ai écrit une petite application de test dans une heure qui relie les signaux / fentes sur deux qxtrpcpeers (sur localhost dans le même processus, mais néanmoins). Fonctionne parfaitement. Deux pouces vers le haut.


@marcus merci pour la tête


Une mise à jour 1,5 ans après. Nous avons utilisé QXTrpCpeer dans notre logiciel de production pendant un an maintenant. Aucun problème que ce soit. :-RÉ


Notez que libqxt n'est plus maintenu. Voir dev.libqxt.org/libqxt/wiki/Home . J'étais implémenter quelque chose sur les Qtwebsockets aujourd'hui.