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

Discussion :

Manip QLine-Edit / QString

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Par défaut Manip QLine-Edit / QString
    Bonjour à tous!
    Voici mon problème : je n'arrive pas à faire en sorte que chaque lettre écrite dans une QLineEdit soit
    1) instantanément remplacée dans la QLine Edit par les lettres successives d'une QString donnée
    2 ) également stockée dans une autre QString.

    En formel, l'écriture d'une phrase1 dans une QLine 1, entrainerait l'enregistrement de cette phrase1 dans une QLine2, et l'écriture "lettre par lettre" d'une QString donnée dans la QLine 1.

    En espérant que ce soit clair et que quelqu'un puisse m'aider, ce serait génial.
    Merci d'avance!
    (j'utilise Qt Creator)

    Hydilas

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Je suis désolé j'ai rien compris. Après j'ai peut etre du mal le samdi en fin d'aprem...
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  3. #3
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Il te faut connecter un slot au signal textEdited (utilise bien celui-ci et non textChanged car est émis lors d'un appel à setText, chose que tu vas faire dans ton slot). A partir de l'argument qui t'es fourni, tu connais le nombre de lettres entrées, et donc le nombre de lettres du mot dont tu veux forcer l'écriture. Un petit setText ensuite et c'est réglé.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Par défaut Précisement
    Salut et merci pour ta réponse IrmatDen.
    Je crois que je saisis quelquechose mais pourrais-tu m'expliciter un peu ça, car je débute et tout n'est pas encore bien fixé dans la compréhension du langage ou plutôt de l'explication du langage

    Pour superjaja : j'essaye de réexpliquer car je conçois que ce soit dur, surtout un samedi fin daprem, tu l'as dit ...

    En fait il s'agirait simplement de faire en sorte qu'en écrivant une phrase dans une QLineEdit, ce ne soit pas ce qui est réellement écrit qui s'affiche, mais le contenu d'une QString donnée. Ce qui est réellement tapé sur le clavier sera seulement enregistré dans une autre QString.
    Par exemple, j'écris "Robert" dans une QLineEdit1. Mais il s'affiche en fait "Pamela", quoi que j'écrive. Dans cet exemple, j'aurai tapé "R", il se sera affiché "P", puis "o" -> "a", "b" -> "m", etc... Dans le même temps, "Robert" sera stocké dans une autre QString.

    J'espère que c'est plus clair.
    Merci d'avance de m'aider encore a little bit!

    Tchou

  5. #5
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Je ne vais pas te donner la réponse directe, mais te donner un petit cas afin que tu puisses chercher à comprendre.

    * L'utilisateur veut entrer le mot "Alpha"
    * La machine va faire apparaître "Gamma"
    * On sauvegarde la saisie dans la variable QString userStr

    1. Saisie de "A" (donc déclenchement du signal textEdited donc passage dans ton slot)
    => on voit que la longueur du texte est 1
    => On ajoute la dernière lettre (donc "A") à userStr
    => On prend la première lettre de "Gamma", et on l'affiche
    => Le texte affiché et donc "G"
    => userStr == "A"
    2. Saisie de "l"
    => on voit que la longueur du texte est 2 (le texte est maintenant "Gl"
    => On ajoute la dernière lettre (donc "l") à userStr
    => On prend les 2 premières lettres de "Gamma", et on les affiche
    => Le texte affiché et donc "Ga"
    => userStr == "Al"
    3. Saisie de "p"
    => on voit que la longueur du texte est 3 (le texte est maintenant "Gap"
    => On ajoute la dernière lettre (donc "p") à userStr
    => On prend les 3 premières lettres de "Gamma", et on les affiche
    => Le texte affiché et donc "Gam"
    => userStr == "Alp"
    4. Saisie de "h"
    => on voit que la longueur du texte est 4 (le texte est maintenant "Gamh"
    => On ajoute la dernière lettre (donc "h") à userStr
    => On prend les 4 premières lettres de "Gamma", et on les affiche
    => Le texte affiché et donc "Gamm"
    => userStr == "Alph"
    5. Saisie de "h"
    => on voit que la longueur du texte est 5 (le texte est maintenant "Gamma"
    => On ajoute la dernière lettre (donc "a") à userStr
    => On prend les 5 premières lettres de "Gamma", et on les affiche
    => Le texte affiché et donc "Gamma"
    => userStr == "Alpha"

    Est-ce que tu vois mieux le pattern ainsi décrit ?

  6. #6
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Voilà un exemple de comment cela fonctionne.
    J'avais pas vu le post d'IrmatDen quand j'ai fait le prog donc je sais pas si j'ai suivi le meme pattern. Ce n'est pas quelque chose de fini il faut prendre en compte certain cas mais ça c'est a toi de gérer après. Je te donne deja le fonctionnement et le mise en place avec les signaux et slot et un debut d'algo.

    Bon courage pour la suite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include <QtGui>
    #include <QtGui/QApplication>
     
    class View : public QWidget
    {
    	Q_OBJECT
     
    private:
    	//Variables membres
    	QString m_Pamela;
    	QLineEdit* m_line;
    	QString m_saveLine;
     
    public:
    	View()
    	{
    		//Initialisation des differents controles
    		m_line = new QLineEdit(this);
    		//Initialisation de la QString 
    		m_Pamela = "Pamela";
    		//On connecte le signal textEdited de note QLineEdit avec notre slot EditNew
    		connect(m_line,SIGNAL(textEdited(const QString&)),this,SLOT(EditNew(const QString &)));
     
    	}
     
    protected slots :
    	void EditNew(const QString & text) 
    	{	
    		//on recupere la taille de la chaine
    		int num = text.length();
    		//On recupere le denier caracter entrer
    		QString newText = m_Pamela.left(num);
    		//On sauvegarde ce qu'a entrer l'utilisateur et on concataine avec ce qu'il a entrer precedement
    		m_saveLine = m_saveLine + text.right(1);
    		//On met a jour l'edit
    		m_line->setText(newText);
    		//On remet la variable de sauvegarde vide si l'utilisateur efface tout les caracteres.
    		if( num < 1)
    			m_saveLine="";
     
     
    	}
     
    };
     
    #include "main.moc"
     
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	View w;
    	w.show();
    	return a.exec();
    }
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Manip de fichiers] Fonction retournant des infos
    Par sans_atouts dans le forum C
    Réponses: 3
    Dernier message: 24/07/2002, 14h16
  2. Hint et edit.enbled
    Par Invité dans le forum Composants VCL
    Réponses: 2
    Dernier message: 23/07/2002, 09h26
  3. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09
  4. Image et rich edit
    Par :GREG: dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/05/2002, 11h33

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