ComboBox en C++ avec Qt
Fermé
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
-
Modifié par Zyo1 le 15/07/2013 à 22:03
Zyo1 Messages postés 83 Date d'inscription vendredi 22 juin 2012 Statut Membre Dernière intervention 24 juillet 2015 - 19 juil. 2013 à 16:43
Zyo1 Messages postés 83 Date d'inscription vendredi 22 juin 2012 Statut Membre Dernière intervention 24 juillet 2015 - 19 juil. 2013 à 16:43
A voir également:
- Combobox qt
- Qt sdk - Télécharger - Langages
- Remplir combobox vba ✓ - Forum Excel
- Combobox additem ✓ - Forum VB / VBA
- Vba combobox listindex ✓ - Forum VB / VBA
- Qt platform plugin download ✓ - Forum Programmation
2 réponses
scinarf
Messages postés
1119
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
252
18 juil. 2013 à 14:35
18 juil. 2013 à 14:35
Bonjour,
Pour cela :
on définit une QCombobox *maCombobox = new QCombobox(this);
pour récupérer la valeur on utiliser les méthodes :
QVariant val = maCombobox ->itemData(maCombobox ->currentIndex()) ;
val.toDouble() pour en récupérer la valeur en double ou utiliser une autre méthode pour un autre type.
Et pour faire une action à chaque changement de valeur il suffit d'utiliser la macro connect() de QObject.
Pour cela :
on définit une QCombobox *maCombobox = new QCombobox(this);
pour récupérer la valeur on utiliser les méthodes :
QVariant val = maCombobox ->itemData(maCombobox ->currentIndex()) ;
val.toDouble() pour en récupérer la valeur en double ou utiliser une autre méthode pour un autre type.
Et pour faire une action à chaque changement de valeur il suffit d'utiliser la macro connect() de QObject.
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
Modifié par Zyo1 le 19/07/2013 à 16:44
Modifié par Zyo1 le 19/07/2013 à 16:44
Merci de ta réponse,
Pour mon cas, je souhaite (pour tester) que lorsque je clique sur un élément de la comboBox celui-ci s'ajoute dans la comboBox en question.
J'ai donc le fichier Fenetre.cpp (j'ai enlevé les imports) :
Fenetre::Fenetre() : QWidget()
{
setFixedSize(750, 600);
// Construction du bouton
liste = new QComboBox(this);
liste2 = new QComboBox(this);
init();
}
void Fenetre::init(){
liste->setCursor(Qt::PointingHandCursor);
liste->setFont(QFont("Arial", 10));
liste->setGeometry(250, 100, 280, 28);
liste->addItem("A");
liste2->setCursor(Qt::PointingHandCursor);
liste2->setFont(QFont("Arial", 10));
liste2->setGeometry(250, 280, 200, 28);
liste2->addItem("1");
QObject::connect(liste2, SIGNAL(currentIndexChanged(QString)), qApp, SLOT(dit(QString)));
}
void Fenetre::dit(int d){
QVariant val = liste2 ->itemData(liste2 ->currentIndex()) ;
liste2->addItem(val.toDouble());
}
Et celui main.cpp :
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Fenetre fenetre;
fenetre.show();
return app.exec();
}
J'ai donc fait ceci, mais il me refuse liste2->addItem(val.toDouble()); à la compilation, avec l'erreur : no matching function for call 'QcomboBox::add(item(double);'
Pourtant j'utilise la méthode de la classe QComboBox..
Pour mon cas, je souhaite (pour tester) que lorsque je clique sur un élément de la comboBox celui-ci s'ajoute dans la comboBox en question.
J'ai donc le fichier Fenetre.cpp (j'ai enlevé les imports) :
Fenetre::Fenetre() : QWidget()
{
setFixedSize(750, 600);
// Construction du bouton
liste = new QComboBox(this);
liste2 = new QComboBox(this);
init();
}
void Fenetre::init(){
liste->setCursor(Qt::PointingHandCursor);
liste->setFont(QFont("Arial", 10));
liste->setGeometry(250, 100, 280, 28);
liste->addItem("A");
liste2->setCursor(Qt::PointingHandCursor);
liste2->setFont(QFont("Arial", 10));
liste2->setGeometry(250, 280, 200, 28);
liste2->addItem("1");
QObject::connect(liste2, SIGNAL(currentIndexChanged(QString)), qApp, SLOT(dit(QString)));
}
void Fenetre::dit(int d){
QVariant val = liste2 ->itemData(liste2 ->currentIndex()) ;
liste2->addItem(val.toDouble());
}
Et celui main.cpp :
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Fenetre fenetre;
fenetre.show();
return app.exec();
}
J'ai donc fait ceci, mais il me refuse liste2->addItem(val.toDouble()); à la compilation, avec l'erreur : no matching function for call 'QcomboBox::add(item(double);'
Pourtant j'utilise la méthode de la classe QComboBox..