Les derniers messages du forum QtFR.

17/10/2017

Getline

Bonjour,

j'ai un petit problème ( de débutant oui j'avoue), je ne sais pas comment faire pour permettre a ""FrameReprog"" de prendre toutes les lignes de Frame_HEX ( pour le moment il me prends que la dernière ) !! avez vous une solution svp

const int endLineCharNumber = 2;
const int offsetSize =4;
const int frameSize = 46;
for( n=0; n<5; n++)
{
Frame = File.mid(n * (frameSize + endLineCharNumber ) + offsetSize , frameSize - offsetSize );
Frame_HEX = Frame.toLower();
}
/********************************************************* Algo_de_Gestion ******************************************************/
void MainWindow::organisation(void)
{
switch (state)
{
case IDLE:
if (startReprog == 1)
{
state = ERASE_FLASH;
}
break;

case ERASE_FLASH:
emit(EraseFlash());
state = ERASE_FLASH_WAIT;
break;

case ERASE_FLASH_WAIT:
emit(statusErase = getStatusErase());
if (statusErase == 0x01)
{
qDebug() << "test 1";
//emit(FrameReprog(Frame_HEX, Frame_HEX.length()));
state = WRITE_FLASH;
statusErase = 0xFF;
}
if (statusErase == 0x00)
{
qDebug() << "test 2";
state = ERASE_FLASH;
statusErase = 0xFF;
}
break;

case WRITE_FLASH:
emit(FrameReprog(Frame_HEX, Frame_HEX.length())); /* ligne n */
state = WRITE_FLASH_WAIT;
statusWriting = 0xFF;
break;

case WRITE_FLASH_WAIT:
emit(statusWriting = getStatusWriting());
if (statusWriting == 0x01)
{
qDebug() << "writing OK";
emit(FrameReprog(Frame_HEX, Frame_HEX.length())); /* ligne n+1 */
}
if (statusWriting == 0x00)
{
qDebug() << "writing KO";
state = ERASE_FLASH;
}
break;

/*case Fin:
break;*/

default:
state = IDLE;
break;
}
}

framereprog ::
void anchor::FrameReprog(QByteArray Frame_HEX, unsigned int length)
{
QByteArray Frame;

for( unsigned int i=0 ; i<length ; i++)
{
Frame[0] = 0xA1;
Frame[i+1] = Frame_HEX.at(i);
}
sendFrame(0, Frame, length);
}
04/10/2017

Librairie libbcm2835

Salut,
J'essaye de faire un programme sur Rasp Pi3.
J'utilise la bibliothèque bcm2835-1.52 pour la gestion des GPIO.
J'ai beau ajouter la librairie (.a) avec un click droit sur le projet, malgré cela, j'obtiens une erreur....
Voici mon arborescence:
image
https://drive.google.com/open?id=0B5T2aeLpdy1OWWpvQzlOVFNBTUE
Et voici ce que donne le .pro:


win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../bcm2835-1.52/src/release/ -lbcm2835
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../bcm2835-1.52/src/debug/ -lbcm2835
else:unix: LIBS += -L$$PWD/../bcm2835-1.52/src/ -lbcm2835

INCLUDEPATH += $$PWD/../bcm2835-1.52/src
DEPENDPATH += $$PWD/../bcm2835-1.52/src

win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../bcm2835-1.52/src/release/libbcm2835.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../bcm2835-1.52/src/debug/libbcm2835.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../bcm2835-1.52/src/release/bcm2835.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../bcm2835-1.52/src/debug/bcm2835.lib
else:unix: PRE_TARGETDEPS += $$PWD/../bcm2835-1.52/src/libbcm2835.a
Et bien sur, voici mon message d'erreur...

:-1: erreur : skipping incompatible /home/pascal/Documents/Langage C++/Qt/BoitierA350/BoitierA350/../bcm2835-1.52/src//libbcm2835.a when searching for -lbcm2835
:-1: erreur : cannot find -lbcm2835
:-1: erreur : collect2: error: ld returned 1 exit status
Merci pour votre aide...
20/10/2017

Pb lors de l'excution du programme sous Qtcreator 4.0.3

Bonjour à tous,

Pour le développement d'un soft sous Qtcreator 4.0.3 j'ai besoin d'utiliser OpenCV 3.1.0 et la librairie tiff. (je suis sous Ubuntu 16.04)

Mon .pro est configuré de cette manière :

INCLUDEPATH += /home/OpenCv/include
LIBS += -L/home/OpenCv/lib -lopencv_core -lopencv_stitching -lopencv_imgcodecs -lopencv_highgui -lopencv_imgproc
LIBS += -L/usr/lib/x86-64_gnu-linux-gnu -ltiff
La compilation se déroule correctement mais lors de l'exécution du soft je me retrouve avec l'erreur suivante :
Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

Là je bloque complètement je vois bien qu'il y a un problème de link au niveau des librairies et de Qt mais je n'arrive pas à corriger l'erreur .... est-ce qu'il faut ajouter autre chose dans le .pro ?

Merci par avance et si vous avez besoin de plus d'explication n'hésitez pas
19/10/2017

Modification qml par c++

Bonjour
Je suis un debuttant sur Qt. Monprojet esrt de creer une application dont l'interface est ecrit en qml.
Dans le qml j'ai un combobox dans lequel je souhaiterais lister tous le ports com disponibles.
Sur la cosole, je lit les port faceilement, mais comment transmettre les ports com au qml , ..... mon probleme.
// C++
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;

QQmlComponent component(&engine, QUrl(QLatin1String("qrc:/main.qml")));
QObject *object = component.create();

QStringList lport;
QList<QSerialPortInfo> ListPort;
ListPort = QSerialPortInfo::availablePorts();

qDebug() << "Number of serial ports:" << ListPort.count();
for (int i=0; i < ListPort.size();i++)
{
qDebug() << "Names of serial ports:" << ListPort.at(i).portName();
lport << ListPort.at(i).portName();
}
QObject * ComboPort = object->findChild<QObject*>("cb_port");
if (ComboPort)
{
ComboPort->setProperty("cbItems",lport);
}
return app.exec();
}
// Qml

ComboBox {
id: cb_port
objectName: "cb_port"
x: 480
y: 91
anchors.bottom: parent.bottom
anchors.bottomMargin: 519
model: cbItems
}

merci de votre aide .
19/10/2017

QSettings en Qt 5

Bonjour à tous :=)

J'ai porté un soft qui tournait bien en Qt 4.8.
Je l'ai passé en Qt 5.4 et un fonctionnement différent apparaît au niveau des QSettings :
QSettings S;
S.beginGroup( nom );
S.setValue( IT_GEOMETRIE, pDlg->geometry() );
S.endGroup();
return;
En 4.8 le .INI était écrit à la destruction de l'objet S.
En 5.4 le .INI est écrit à la sortie de l'application !!

J'ai esayé d'ajouter S.sync(), mais sans succès :=(

Est-ce que quelqu'un a déjà rencontré ce problème ?
Des idées ?

Salutations
15/10/2017

Problemes de drivers de Mysql sous ubuntu16.4 TLS

Bonsoir
C'est avec joie que j'ai enfin re installer ma machine sous linux..seulement que a chaque fois que je compile on me dit que QMysql driver not loaded..je tourne en rond depuis plus de 8H...avec aucun moyenne de continue mon projet...Au secours Qt version 5.5 et Ubuntu 16.04TLS
26/02/2016

Component fbx.application.Settings

Bonjour

La fonctionnalité Settings est elle utilisable ?
Pas l'air de marcher qd je prends l'exemple de base .
main: http://192.168.0.2:14903/main.qml:10: TypeError: Property 'sessionOpen' of object QQuickWindowQmlImpl_QML_1(0x8423460, "fbx.application.Application") is not a function
◾ Application instance does not declare a handleUrl() function !
◾ Settings load failed with error: QJsonObject({"code":-32000,"message":"Network error: Host unreachable"})
◾ main: http://192.168.0.2:14903/main.qml:10: TypeError: Property 'sessionOpen' of object QQuickWindowQmlImpl_QML_1(0x8423460, "fbx.application.Application") is not a function
◾ Settings save failed with error: QJsonObject({"code":-32000,"message":"Network error: Host unreachable"})

Si ce n'est pas fonctionnel , quelle est la methode la plus simple pour stocker une config ?

Thx
16/10/2017

ASSERT: "uint(i) < uint(size())" in file C:/Qt/5.9.1/mingw53_32/include/QtCore/qbytearray.h,

Bonjour,

ça fait une demi journée que j'essaye de résoudre cette erreur :
test 1
ASSERT: "uint(i) < uint(size())" in file C:/Qt/5.9.1/mingw53_32/include/QtCore/qbytearray.h, line 468 ....... l ERREUR
writing KO
test 1
writing KO
et dans la ligne 468 il ya ca :
{ Q_ASSERT(uint(i) < uint(size())); return d->data()[i]; }

Je sais que l'erreur est entre les etoiles( en bas), en faite dans cette boucle for je convertis les lettres MAJUSCULES en minuscules. mais le blem que je vois pas ou est l erreur ??
 const int endLineCharNumber = 2;
const int offsetSize =4;
const int frameSize = 46;
for( n=0; n<5/*1637*/; n++)
{
Frame = File.mid(n * (frameSize + endLineCharNumber ) + offsetSize , frameSize - offsetSize );

/*******A PARTIR D'ICI*******/
unsigned int j = 0;
for(unsigned int i=0; i<(unsigned int)(Frame.length());i=i+2)
{
if( Frame.at(i)< 0x40)
{
Frame_HEX[j] = (Frame.at(i) - 0x30)<<4;
}
else
{
Frame_HEX[j] = (Frame.at(i) - 0x41 + 10)<<4;
}

if( Frame.at(i+1) < 0x40 )
{
Frame_HEX[j] = (Frame_HEX[j] | (Frame.at(i+1) - 0x30));
}
else
{
Frame_HEX[j] = (Frame_HEX[j] | (Frame.at(i+1) - 0x41 + 10));
}
j++;
}

/*******FIN*******/

qDebug()<<"ASCII:"<<Frame<<" HEX:"<<Frame_HEX.toHex();
}
}

void MainWindow::organisation(void)
{
switch (state)
{
case IDLE:
if (startReprog == 1)
{
state = ERASE_FLASH;
}
break;

case ERASE_FLASH:
emit(EraseFlash());
state = ERASE_FLASH_WAIT;
break;

case ERASE_FLASH_WAIT:
emit(statusErase = getStatusErase());
if (statusErase == 0x01)
{
qDebug() << "test 1";
//emit(FrameReprog(Frame_HEX, Frame_HEX.length()));
state = WRITE_FLASH;
}
if (statusErase == 0x00)
{
qDebug() << "test 2";
state = ERASE_FLASH;
}
break;

case WRITE_FLASH:
emit(FrameReprog(Frame_HEX, Frame_HEX.length())); /* ligne n */
state = WRITE_FLASH_WAIT;
break;

case WRITE_FLASH_WAIT:
emit(statusWriting = getStatusWriting());
if (statusWriting == 0x01)
{
qDebug() << "writing OK";
//emit(FrameReprog(Frame_HEX, Frame_HEX.length()));/* ligne n+1 */
}
if (statusWriting == 0x00)
{
qDebug() << "writing KO";
//state = ERASE_FLASH;
state = ERASE_FLASH;
}
break;

/*case Fin:
break;*/

default:
state = IDLE;
break;
}
}
@babaOroms HELP ME please
15/10/2017

IHM pour enfant

Bonsoir à tous.

Ces derniers temps je suis un peu en difficulté pour réaliser une interface pour un soft dédié à l'éducation des enfants. J’en ai réalisé un super joli, mais on me dit que ce n’est pas adéquat pour des enfants de 6-7ans.
Que me conseillez-vous ?
12/10/2017

UbuntuStudio et Qt compilation

Bonjour à tous,

Depuis peu j' ai installé une distribution Linux UbuntuStudio 17.04 puis 17.10 et sur plusieurs ordinateurs.
Alors que sous UbuntuStudio ou Ubuntu 16.04 ce problème n' existait pas.
Qt s' obstine à me générer une bibliothèque partagée au lieu d' un exécutable.

Dans le pro :
TEMPLATE = app

Il doit exister une option quelque part qui n ' est pas conforme mais je ne trouve pas.
J' ai fais des recherches et trouvé aucune information à ce sujet, je dois être un cas unique ???