IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

NOOB : C++, Linux et Messages


Sujet :

Linux

  1. #1
    doccpu
    Invité(e)
    Par défaut NOOB : C++, Linux et Messages
    Je suis un NOOB en dev linux mais j'ai une certaine experience en dev windows.

    Je connait le mecanisme de messages que le systeme gere sous windows. Seulement maintenant je bosse sous linux et je ne connai pas du tout la facon d'envoyer des messages de meme nature depuis des applications differentes pour qu'elle puissent comuniquer entre elles !

    En fait voila, j'ai construit tout un framework de plusieurs classes en c++ pur qui utilise la commande cout<<...<<endl;. A partir de la j'ai ecrit une petite application en mode console.

    Le problème est que je doit maintenant faire une IHM pour cette application sous linux (SuSE 10.0). je souhaite donc generer des messages uniformes
    (genre void SendText(char *), ou un peu comme les delegates en C#) que mon IHM soit capable de recuperer sans avoir a se demander d'où le message provient. J'ai cherché dans la FAQ et dans le forum et j'ai rien trouvé qui corresponde.

    Pouriez vous, me donner au moin un petit repere pour que je puisse avancer ?

    ps : Je travaille sous Eclipse/CDT/ avec gcc/g++ et Qt 4.

    Cordialement...

  2. #2
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    QMessageBox ?

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    On peut utiliser lers system queues :
    dans les include : iostream & errno
    utiliser msgget pour lire et msgsnd pour écrire
    Pour ouvrir : local_UserQueue=msgget(SysQueueIdentity,IPC_CREATE|0666) ;
    Pour lire/modifier la taille : getInfo, setInfo

  4. #4
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par Ti-R
    QMessageBox ?
    Je ne souhaite pas afficher les messages dans une boite de message mais dans un QTextEdit.

    En fait je pensais plutot a un truc du genre de QEvent. Merci quand même.

    Citation Envoyé par Graffito
    On peut utiliser lers system queues :
    dans les include : iostream & errno
    utiliser msgget pour lire et msgsnd pour écrire
    Pour ouvrir : local_UserQueue=msgget(SysQueueIdentity,IPC_CREATE|0666) ;
    Pour lire/modifier la taille : getInfo, setInfo
    Ca m'interesse quand meme ou puis-je me documenter dessus ?

  5. #5
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Pour communiquer entre applications sous Linux, il existe plusieurs mécanismes :

    - Les signaux
    - Les segments de mémoire partagée
    - Les tubes & tubes nommés
    - Les files de messages
    - Les sockets

  6. #6
    doccpu
    Invité(e)
    Par défaut
    En fait je cherche à utiliser l'equivalent des delegates C# sous linux si il existent en Qt.

    En C# :
    EventArgs,
    EventHandler,
    delegate

    En Qt la classe QEvent ne peut pas etre derivé (a moins que j'ai mal compris) a cause de QObject::eventFilter(QObject * target, QEvent * event) donc je peux pas deriver pour metre mon texte a passer, comme je pourais le faire avec EventArgs en C#.

    Si il est possible de faire ce que j'ai dit plus haut, merci de m'envoyer un exemple...

    cordiallement...

  7. #7
    tut
    tut est déconnecté
    Membre averti
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Points : 394
    Points
    394
    Par défaut
    tu dois pouvoir dériver QEvent, je l'ai fait dans Qt 3.3...
    Pour communiquer entre Processus, tu peux peut-être utiliser la classe QProcess :
    The QProcess class is used to start external programs and to communicate with them

  8. #8
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par tut
    tu dois pouvoir dériver QEvent, je l'ai fait dans Qt 3.3...
    Pour communiquer entre Processus, tu peux peut-être utiliser la classe QProcess :
    J'aimerais bien ! Tu peux m'envoyer un exemple sur 2 classes threadé qui comuniquen entre elles svp ? parce que la moi je patine !

    autre chose quele est le difference entre QCoreApplication::postEvent() et QCoreApplication::sendEvent() ?

    merci d'avance

    cordialement ...

  9. #9
    doccpu
    Invité(e)
    Par défaut
    c bon j'ai compris ce qui n'allait pas !
    il faut faire un installeventFilter() sur chaque composent qui emet un event que l'on veux recuperer !

    Effectivement on peut deriver de QEvent

    merci quand meme !

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/06/2008, 13h37
  2. Message d'erreur linux
    Par Pilsou dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 23/10/2007, 03h29
  3. [REDHAT] Problème d'installation de linux message d'erreur: pci:00:03
    Par spilliaert quentin dans le forum RedHat / CentOS / Fedora
    Réponses: 2
    Dernier message: 07/08/2005, 13h51
  4. Réponses: 7
    Dernier message: 29/10/2002, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo