Afficher le contenu d'un QlistBox dans un QtextEdit

bhytr Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 23 avril 2008 - 10 mars 2008 à 17:00
s@ldon Messages postés 140 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 septembre 2009 - 12 mars 2008 à 18:48
salut,
j'ai une liste de commande dans un QlistEdit et je veux que si je selectionne une de ces commandes elle s'affiche dans un QtextEdit.
je fait comme ca:

connect(list, SIGNAL(selected( QListBoxItem *)), textEdit, SLOT(commande()));

avec:
list est de type QListbox
textEdit de type QtextEdit
//la fonction de slot

void MyWidget::commande()
{
for ( unsigned int i = 0; i < list->count(); i++ ) {
QListBoxItem *item = list->item( i );
if (item->isSelected() )
{
if (!item->text().isEmpty() )
{
textEdit->setText(item->text());
textEdit->show();
}
}
}
}
le probleme c'est qu'il compile bien sans erreurs mais en clicant sur une commande il s'affiche rien dans le TextEdit.
merci bien d'avoir m'aider à resoudre ce probleme.

6 réponses

s@ldon Messages postés 140 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 septembre 2009 3
10 mars 2008 à 21:22
Bon, pour commencer, utilise un QListWidget. Puis le signal à connecter est currentItemChanged(QListWidgetItem *current,QListWidgetItem *previous)

Le code donne cela avec list de type QListWidget :

DialogImpl::DialogImpl( QWidget * parent, Qt::WFlags f)
: QDialog(parent, f)

{

setupUi(this);

connect(list, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(commande(QListWidgetItem*,QListWidgetItem*)));

}

void DialogImpl::commande(QListWidgetItem* item,QListWidgetItem* _item)

{

textEdit->setText(item->text());

}

//
0
bhytr Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 23 avril 2008
11 mars 2008 à 11:04
je ne travaille pas avec QtDesigner mais j'ai programmé avec c++ sur la console de linux et aprés un recherche je trouve que QListWigdet est une classe de QtGui et je sais pas est ce que je peux ou non la utiliser et comment?
merci
0
bhytr Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 23 avril 2008
11 mars 2008 à 12:17
vraiment merci beaucoup _Jonathan ca marche comme ca

connect(list, SIGNAL(selectionChanged( QListBoxItem *)), this, SLOT(affiche(QListBoxItem * )));

avec:

void MyWidget::affiche(QListBoxItem *item)
{
textEdit->setText(item->text());
textEdit->show();
}

mais je veux que chaque item selsctionné s'affiche dans une ligne.aidez moi si vous avez une idée.
0
s@ldon Messages postés 140 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 septembre 2009 3
11 mars 2008 à 18:35
OK, bon il te faut changer de signal et revenir au code que tu avais au départ :


DialogImpl::DialogImpl( QWidget * parent, Qt::WFlags f)  : QDialog(parent, f)
{


   setupUi(this);


   connect(list, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(commande(QListWidgetItem*)));


   list->setSelectionMode(QAbstractItemView::MultiSelection);


}





void DialogImpl::commande(QListWidgetItem* item)


{


   QString texte;


   for (int i=0;i<list->count();i++)


   {


      if (list->item(i)->isSelected())


      {


         texte += list->item(i)->text();


         texte += "\n";


      }


   }


   textEdit->setText(texte);


}


//
0

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

Posez votre question
bhytr Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 23 avril 2008
12 mars 2008 à 09:23
je fait comme tu a dit _Jonathan mais le probleme ne se resolut pas car je veux que le item selectionné dans le QListBox soit afficher à l'endroit ou l'utilisateur met le curseur dans le QTextEdit.
0
s@ldon Messages postés 140 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 septembre 2009 3
12 mars 2008 à 18:48
En fait, ce que tu veux faire, c'est pouvoir modifier les élements de la liste dans un qtextedit ou du glissé déposé peut etre...
Je ne comprends pas trop...
0
Rejoignez-nous