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 :

[S60 5800] listWidget element cliqué

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut [S60 5800] listWidget element cliqué
    Je tombe sur un problème basique...

    voilà j'ai une "listWiget" renseigné grâce à la lecture DOM d'un fichier xml...

    je voudrai sur clic dans la liste récupéré le N° de l'élément sur lequel le clic à lieu ...

    j'ai écrit cela dans le constructeur de mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	QObject::connect(ui.listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(onList_click()));
    puis j'ai des problème pour écrire la procédure associée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     QString s = "Num %1";
    	//
    	 s = s.arg(ui.listWidget->row(index));
    déjà dans un premier temps l'évènement (le SIGNAL) n'est pas déclenché ...

    quel est le bon "SIGNAL" à placer dans la fonction connect ?

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par bbil Voir le message
    quel est le bon "SIGNAL" à placer dans la fonction connect ?
    j'aurais aussi utilisée celui là... Tu n'aurais pas oublié de mettre la macro Q_OBJECT dans ta classe?

    puis j'ai des problème pour écrire la procédure associée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     QString s = "Num %1";
    	//
    	 s = s.arg(ui.listWidget->row(index));
    Qu'es ce ne va pas ici?

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par yan Voir le message
    mettre la macro Q_OBJECT dans ta classe?..
    j'ai d'autres évènements sur des boutons qui eux fonctionnement...



    Pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void testXML::onList_click(QListWidgetItem  &index)
    	{
    	 QString s = "Num %1";
    	int i;
    	i = ui.listWidget->row(index);
    	 s = s.arg(i);
    	   ui.listWidget->addItem(s);
    	}
    j'ai une erreur sur la ligne "i= ..." :
    Creation Time Description Resource Path Location Type
    1246190155795 function call '[QListWidget].row({lval} QListWidgetItem)' does not match testXML.cpp testXML line 561 C/C++ Problem
    1246190155811 'QListWidget::row(const QListWidgetItem *) const' (non-static) testXML.cpp testXML line 561 C/C++ Problem

  4. #4
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Tu as plusieurs erreurs dans ton programme.
    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(ui.listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(onList_click()));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     QObject::connect(ui.listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(onList_click(QListWidgetItem*)));
    Les signaux et slots doivent avoir la meme signature.

    Dans ton .h :

    tu declares :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private slots :
    void onList_click(QListWidgetItem*)
    De meme dans le cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void testXML::onList_click(QListWidgetItem*  index)
    	{
    	 QString s = "Num %1";
    	int i;
    	i = ui.listWidget->row(index);
    	 s = s.arg(i);
    	   ui.listWidget->addItem(s);
    	}
    Ne pas confondre pointeur et reference en C++, c'est pour cela que tu avais une erreur à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = ui.listWidget->row(index);
    Si tu as encore des questions n'hesite surtout pas.
    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.

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    c'est super jaja..

    c'est ok maintenant mon code fonctionne (même sur le téléphone)

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par superjaja Voir le message
    Les signaux et slots doivent avoir la meme signature.
    PAs la même, mais compatible.
    Le slot peut avoir moins de paramètre d'entrés que le signal
    http://qt.developpez.com/faq/?page=q...ace_signalslot

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    [hs]
    bbil > as tu compris s'il faut installer OpenC-1.5.5b-beta.zip et leur patch pour utiliser QT tower avec le sdk pour s60-5th?
    http://pepper.troll.no/s60prereleases/patches/

    Ça semblais pourtant bien marcher sans...

  8. #8
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Citation Envoyé par yan Voir le message
    PAs la même, mais compatible.
    Le slot peut avoir moins de paramètre d'entrés que le signal
    http://qt.developpez.com/faq/?page=q...ace_signalslot

    C'est vrai j'ai peut etre été trop affirmatif. Heureusement mon parrain est toujours là pour rectifier le tir.


    Citation Envoyé par Yan
    [hs]
    bbil > as tu compris s'il faut installer OpenC-1.5.5b-beta.zip et leur patch pour utiliser QT tower avec le sdk pour s60-5th?
    http://pepper.troll.no/s60prereleases/patches/

    Ça semblais pourtant bien marcher sans...
    Je te sens bientot au top pour nous faitre une petit tuto de formation à Qt pour S60.
    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. [S60 5800] Editeur gui taille des contrôles
    Par SfJ5Rpw8 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/07/2009, 22h13
  2. [S60 5800] Editeur GUI, QDialog et SetCursor
    Par SfJ5Rpw8 dans le forum Débuter
    Réponses: 3
    Dernier message: 14/07/2009, 22h01
  3. [S60 5800]Modifier le menu contextuel
    Par SfJ5Rpw8 dans le forum Débuter
    Réponses: 8
    Dernier message: 12/07/2009, 23h36
  4. [S60-5800] librairie pour Stockage de données XML ?
    Par SfJ5Rpw8 dans le forum Débuter
    Réponses: 7
    Dernier message: 27/06/2009, 17h59
  5. [POO] Element cliqué, id undefined
    Par chiv dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/06/2008, 18h26

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