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
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 () ;
tiens, ça me dis quelque chose ce thread....
wé j'ai fai comme ca mais je trouve un probleme au niveau de port serie
je trouve des prob de compilations au niveau writevoid Fenetre::fct_EnvoyerRs232()
{
QString mot = textEdit-> toPlainText();
serialPort->write(mot);
}
Quelles sont les erreurs de compilation ? et c'est de quelle classe serialPort ?
QextSerialPort
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());
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());
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 ?
voici l'erreur
Oui c'est bien ça l'erreur, essaie une des deux propositions au dessus.
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);
}
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.
merci pour tou l monde
pas de probl dans la compilation mais il reste a vérifié le port quesqu'il envoi
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()));
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.
voila quesue j'ai
pour les connectionsvoid 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();
}
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()));
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(); ?
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
Partager