[QT] Interface de calcul proche de Matlab

Fermé
stankon Messages postés 17 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 15 février 2022 - 24 mars 2010 à 19:06
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 25 mars 2010 à 08:26
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...

A voir également:

6 réponses

jeanbi Messages postés 15119 Date d'inscription samedi 9 décembre 2006 Statut Contributeur Dernière intervention 17 avril 2025 2 182
24 mars 2010 à 19:09
bonjour,
tu veux creer une calculette quoi !
https://www.developpez.net/forums/
a+
0
stankon Messages postés 17 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 15 février 2022
24 mars 2010 à 19:21
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 samedi 9 décembre 2006 Statut Contributeur Dernière intervention 17 avril 2025 2 182
24 mars 2010 à 19:26
re, regardes sur le lien que je t'ai donne tu va trouver
a+
0
stankon Messages postés 17 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 15 février 2022
24 mars 2010 à 21:04
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 mercredi 24 mars 2010 Statut Membre Dernière intervention 15 février 2022
25 mars 2010 à 00:57
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
25 mars 2010 à 08:26
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