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

Qt Discussion :

affectation d'une chaine de caractére dans une variable


Sujet :

Qt

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut affectation d'une chaine de caractére dans une variable
    je veux savoir es que on peux affecté le contenu d'une zone text QTextEdit dans une variable appelé "code"
    svp qui peux m'aider a résoudre ca par un boud de code sur qt

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par midosfax Voir le message
    je veux savoir es que on peux affecté le contenu d'une zone text QTextEdit dans une variable appelé "code"
    svp qui peux m'aider a résoudre ca par un boud de code sur qt
    Est ce que cela marche avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString code = m_textEdit->toPlainText () ;

  3. #3
    Membre actif Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Points : 273
    Points
    273
    Par défaut
    tiens, ça me dis quelque chose ce thread....

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    wé j'ai fai comme ca mais je trouve un probleme au niveau de port serie
    void Fenetre::fct_EnvoyerRs232()
    {
    QString mot = textEdit-> toPlainText();
    serialPort->write(mot);
    }
    je trouve des prob de compilations au niveau write

  5. #5
    Membre habitué Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Points : 143
    Points
    143
    Par défaut
    Quelles sont les erreurs de compilation ? et c'est de quelle classe serialPort ?

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    QextSerialPort

  7. #7
    Membre habitué Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Points : 143
    Points
    143
    Par défaut
    Hum ... Et l'erreur de compile ?

  8. #8
    Membre habitué Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Points : 143
    Points
    143
    Par défaut
    Et avec un minimum de recherche, j'ai cru comprendre que le write de QextSerialPort ne prend pas de QString directement ....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serialPort->write(mot.toAscii(),mot.length());

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Pour envoyer du texte à travers une interface binaire il faut convertir le texte en binaire. Cela implique de choisir un format d'encodage, par exemple UTF-8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serialPort->write(mot.toUtf8());

  10. #10
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Je n'ai jamais utilisé cette API mais peux tu nous donner la signature de la méthode write() ? Tu es sur que c'est une QString qui est pris en argument et pas un char* ou autre ?

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    voici l'erreur
    Images attachées Images attachées  

  12. #12
    Membre habitué Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Points : 143
    Points
    143
    Par défaut
    Oui c'est bien ça l'erreur, essaie une des deux propositions au dessus.

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    l'erreur est que write ne se trouve pas
    no matching function for call to 'Qextserialport::write (Qstring)
    void Fenetre::fct_EnvoyerRs232()
    {
    QString mot = textEdit-> toPlainText();
    serialPort->write(mot);

    }

  14. #14
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Exact c'est surement parce que cette fonction n'existe pas. Donc regarde dans la doc de ton API la signature de la fonction d'écriture. C'est surement plutôt dans le style que ce que propose sardik ou Sylvain Togni.

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    merci pour tou l monde
    pas de probl dans la compilation mais il reste a vérifié le port quesqu'il envoi

  16. #16
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    merci les amis pour votre aide mais juste un dernier probléme
    le prog est maintenant fonctionnel et en plus il envoie sur le port serie mais j'ai un petit souci, le port serie envoie des donnes seulement lorsque j'appui sur la touche run est envoi une seule fois , pour envoyer une autre fois il faut fermer l'appllication et l'ouvrir de nouveau
    es que qlq un peu m'aider???
    void Fenetre::fct_EnvoyerRs232()
    {
    QString mot = textEdit-> toPlainText();
    //serialPort->write(mot.toUtf8());
    serialPort->write(mot.toAscii(),mot.length());

    }
    QObject::connect(pushButton_2, SIGNAL(clicked()), this, SLOT(slot_EnvoyerRs232()));

  17. #17
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Est ce que tu ne fermes pas le port serie entre temps ??
    Tu aurais pas n petit bout de code qui expliquerai un peut plus ton problème avec ouverture du port, ecriture puis reecriture.

  18. #18
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    voila quesue j'ai
    void Fenetre::slot_OuvrirRs232()
    {
    fct_OuvrirRs232();
    }
    void Fenetre::fct_OuvrirRs232()
    {
    qDebug()<< "Configuration du port serie";
    serialPort = new QextSerialPort("COM1");

    //Ne fonctionne pas !
    //connect(serialPort, SIGNAL(readyRead()), this, SLOT(slot_RevevoirRs232())); //Execution du traitement de reception si on recoi une données

    serialPort->setBaudRate(BAUD9600); //9600 Bauds
    serialPort->setDataBits(DATA_8); //8 bit de donnees
    serialPort->setParity(PAR_NONE); //Pas de bit de parite
    serialPort->setStopBits(STOP_1); //1 bit de stop
    serialPort->setFlowControl(FLOW_OFF); //Pas de control de flux

    qDebug()<< "Ouverture du port serie";
    serialPort->open(QIODevice::ReadWrite);
    }
    //Envoi RS232
    void Fenetre::slot_EnvoyerRs232()
    {
    fct_EnvoyerRs232();
    }
    void Fenetre::fct_EnvoyerRs232()
    {
    QString mot = textEdit-> toPlainText();
    //serialPort->write(mot.toUtf8());
    serialPort->write(mot.toAscii(),mot.length());

    }
    //Fermeture RS232
    void Fenetre::slot_FermerRs232()
    {
    fct_FermerRs232();
    }
    void Fenetre::fct_FermerRs232()
    {
    qDebug()<< "Fermeture du port serie";
    serialPort->close();
    }
    pour les connections

    QObject::connect(pushButton_5, SIGNAL(clicked()),this, SLOT(close()));

    QObject::connect(pushButton_2, SIGNAL(clicked()), this, SLOT(slot_OuvrirRs232()));
    QObject::connect(pushButton_2, SIGNAL(clicked()), this, SLOT(writeData()));
    QObject::connect(pushButton_2, SIGNAL(clicked()), this, SLOT(slot_EnvoyerRs232()));
    QObject::connect(pushButton_5, SIGNAL(clicked()), this, SLOT(slot_FermerRs232()));

  19. #19
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Tu peux montrer le .h aussi ? De meme est ce que tu peux verifier qu'a chque fois que tu click sur ton bouton tu passes bien dans la fonction fct_EnvoyerRs232(); ?

  20. #20
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    MON FICHIER .H
    #ifndef HEADER_FENETRE
    #define HEADER_FENETRE
    #include"qextserialport.h"

    #include <QtGui>

    class Fenetre : public QWidget
    {
    Q_OBJECT

    public:
    Fenetre();
    QWidget *tab;
    QTabWidget *tabWidget;
    QextSerialPort *serialPort;
    //QextSerialPort *serialPort;
    QLabel *label, *image;
    QWidget *layoutWidget;
    QHBoxLayout *horizontalLayout;
    QPushButton *pushButton_2;
    QPushButton *pushButton_3;
    QPushButton *pushButton_4;
    QPushButton *pushButton_5;
    QPushButton *pushButton;
    QGroupBox *groupBox;
    QCheckBox *checkBox;
    QToolButton *toolButton;
    QComboBox *comboBox;
    QSpinBox *spinBox;
    QLabel *label_2;
    QLineEdit *lineEdit;
    QLabel *label_3;
    QLabel *label_4;
    QToolButton *toolButton_3;
    QToolButton *toolButton_4;
    QGroupBox *groupBox_2;
    QTextEdit *textEdit;
    QPushButton *pushButton_14;
    QPushButton *pushButton_15;
    QPushButton *pushButton_16;
    QPushButton *pushButton_17;
    QPushButton *pushButton_18;
    QPushButton *pushButton_19;
    QPushButton *pushButton_20;
    QPushButton *pushButton_21;
    QPushButton *pushButton_22;
    QPushButton *pushButton_23;
    QPushButton *pushButton_24;
    QPushButton *pushButton_25;
    QPushButton *pushButton_26;
    QPushButton *pushButton_27;
    QPushButton *pushButton_28;
    QPushButton *pushButton_29;
    QPushButton *pushButton_30;
    QPushButton *pushButton_31;
    QPushButton *pushButton_32;
    QPushButton *pushButton_33;
    QPushButton *pushButton_34;
    QPushButton *pushButton_35;
    QPushButton *pushButton_36;
    QPushButton *pushButton_37;
    QPushButton *pushButton_38;
    QPushButton *pushButton_40;
    QPushButton *pushButton_41;
    QPushButton *pushButton_42;
    QPushButton *pushButton_43;
    QPushButton *pushButton_44;
    QPushButton *pushButton_45;
    QWidget *tab_2;
    QGroupBox *groupBox_3;
    QCheckBox *checkBox_3;
    QToolButton *toolButton_5;
    QComboBox *comboBox_3;
    QSpinBox *spinBox_2;
    QLabel *label_5;
    QLineEdit *lineEdit_2;
    QLabel *label_6;
    QLabel *label_7;
    QToolButton *toolButton_6;
    QToolButton *toolButton_7;
    QGroupBox *groupBox_4;
    QTextEdit *textEdit_2;
    QWidget *layoutWidget_2;
    QHBoxLayout *horizontalLayout_2;
    QPushButton *pushButton_6;
    QPushButton *pushButton_7;
    QPushButton *pushButton_8;
    QPushButton *pushButton_9;
    QLabel *label_8;
    QWidget *tab_3;
    QGroupBox *groupBox_5;
    QCheckBox *checkBox_4;
    QToolButton *toolButton_8;
    QComboBox *comboBox_4;
    QSpinBox *spinBox_3;
    QLabel *label_9;
    QLineEdit *lineEdit_3;
    QLabel *label_10;
    QLabel *label_11;
    QToolButton *toolButton_9;
    QToolButton *toolButton_10;
    QGroupBox *groupBox_6;
    QTextEdit *textEdit_3;
    QWidget *layoutWidget_3;
    QHBoxLayout *horizontalLayout_3;
    QPushButton *pushButton_10;
    QPushButton *pushButton_11;
    QPushButton *pushButton_12;
    QPushButton *pushButton_13;
    QLabel *label_12;

    public slots:

    private slots:
    void app();
    //void runned();
    void app1();
    void app2();
    void appli();
    void application14();
    void application15();
    void application16();
    void application17();
    void application18();
    void application19();
    void application20();
    void application21();
    void application22();
    void application23();
    void application24();
    void application25();
    void application26();
    void application27();
    void application28();
    void application29();
    void application30();
    void application31();
    void application32();
    void application33();
    void slot_OuvrirRs232();
    void slot_FermerRs232();
    void slot_EnvoyerRs232();
    private :
    //Fonction
    void fct_OuvrirRs232();
    void fct_FermerRs232();
    void fct_EnvoyerRs232();
    void fct_RevevoirRs232();


    //Variables

    };

    #endif

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MFC] Insertion d'une chaine de caractère dans une BD
    Par julien.nasser dans le forum MFC
    Réponses: 2
    Dernier message: 20/04/2006, 15h19
  2. Réponses: 2
    Dernier message: 26/11/2005, 13h44
  3. Récupérer une chaine de caractère dans une page
    Par BrunS dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2005, 14h28
  4. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 11h51
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

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