[QT] Interface de calcul proche de Matlab

stankon Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je suis débutant sur QT , j'ai QT SDK 2010.02.1 installé récemment. Je souhaite créer un interface de calcul proche de Matlab, style quand on écrit 1+2 puis en tapant sur entrée, on obtient 3 en bas.

Pour l'instant j'ai pu créer un champ de saisie avec QLineEdit. Pour tester, j'ai demandé à ce que le bouton "entrée" fait fermer la fenêtre, et ça marche avec la commande suivant:

connect(LineEdit, SIGNAL(returnPressed()), qApp, SLOT(quit()));

Maintenant je me demande comment je peux le rendre intelligent en détectant les caractères et les chiffres, genre détecter dans "1+2" le "1", puis l'opérateur "+" puis le deuxième chiffre "2".

Quelqu'un aurait une idée ? Merci beaucoup...

6 réponses

jeanbi Messages postés 15119 Date d'inscription   Statut Contributeur Dernière intervention   2 184
 
bonjour,
tu veux creer une calculette quoi !
https://www.developpez.net/forums/
a+
0
stankon Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
oui presque comme une calculette, mais textuel, sans les boutons...
il y aura un champ de saisie, où on peut taper soit "1+1" ou "2/3" et en tapant sur entrée le résultat apparaît en bas...
0
jeanbi Messages postés 15119 Date d'inscription   Statut Contributeur Dernière intervention   2 184
 
re, regardes sur le lien que je t'ai donne tu va trouver
a+
0
stankon Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
y'a-t-il un lien vers une discussion spécifique ? parce que les discussions, il y en a... j'ai pensé à QString, mais je ne suis pas sûr qu'il puisse détecter les calculs à faire...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stankon Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
voici ce que j'ai déjà:

calculpad.cpp

#include <QtGui>
#include <QLineEdit>
#include <QString>

#include "calculpad.h"

Window::Window()
{
    QGroupBox *Groupe = new QGroupBox(tr("Calcul"));

    LineEdit = new QLineEdit;
    LineEdit->setFocus();

    connect(LineEdit, SIGNAL(editingFinished()), qApp, SLOT(quit()));

    QGridLayout *Layout = new QGridLayout;
    Layout->addWidget(LineEdit, 1, 0, 1, 2);
    QGridLayout *layout = new QGridLayout;
    layout->addWidget(Groupe, 1, 0, 2, 4);

    Groupe->setLayout(Layout);
    setLayout(layout);

    setWindowTitle(tr("CalculPad"));
}


calculpad.h

#ifndef CALCULPAD_H 
#define CALCULPAD_H

#include <QWidget>

class QLineEdit;

class Window: public QWidget
{
    Q_OBJECT

public:
    Window();

private:
    QLineEdit *LineEdit;
    QString str;
};

#endif


main.cpp

#include <QApplication>

#include "calculpad.h"

int main(int argc, char *argv[])
{
    QApplication app (argc, argv);

    Window Window;
    Window.show();

    return app.exec();
}


Ce que je voudrais faire d'abord, c'est de pouvoir afficher quelque chose en dessous en cliquant sur "entrée", genre un string 'Bravo'.

Ensuite, en utilisant les propriétés de QString (sauf si quelqu'un a une meilleure idée) pour détecter les opérateurs (+, -, *, /) et de différencier les caractères avant et après les opérateurs...

Quelqu'un pourrait m'aider ? Merci...
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
J'ai fait une calculette de ce genre. C'est assez complexe.
il faut récupérer la chaine tapée dans un QString et ensuite l'analyser.
L'analyse consiste à séparer les valeurs des opérateurs.
0