Partage

Retour affichage cellule

23 août 2018 à 22:33:01

Bonjour à tous,

Je suis novice en utilisation de Qt Creator.

J'apprend à programmer et je me trouve face à un problème que je n'arrive pas à résoudre :

Sur Qt Designer, j'ai créé un QPushButton sur une fenêtre (fenetre2) qui ouvre une autre fenêtre (fenetre3) quand on clique dessus. J'ai également créé un QTableWidget sur la fenêtre 2 (tableau qui ne contient que des cellules vides).

Dans ma fenêtre 3, j'ai créé un Combo Box qui possède deux choix (Disponible ou Indisponible).

Voici mon problème :

J'aimerai récupérer la donnée "Disponible" ou "Indisponible" issue du ComboBox fenetre3, pour qu'elle soit affichée dans mon QTableWidget dans une cellule vierge.

J'espère être clair, en gros je souhaite afficher le choix du ComboBox dans une cellule.

Pour le moment, j'ai ajouté ceci dans mon fenetre3.cpp :

QObject::connect(ui->comboBox,SIGNAL(clicked(Disponible)), this, SLOT(retourcellulezero()));
void Fenetre3::retourcellulezero()
{
    fenetre2 *window //je ne sais pas quoi mettre ici
}

Ceci dans mon fenetre3.h :

public slots:
    void retourcellulezero();

Je reste à votre disposition pour vous donner d'autres infos, un grand merci à l'avance pour votre réponse!!

à bientôt

Julien

-
Edité par JulienBivel 23 août 2018 à 22:34:04

Vous êtes demandeur d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur web junior

Je postule
Formation
en ligne
Financée
à 100%
25 août 2018 à 2:54:25

Bonjour, en gros tu veux mettre à jour ton tableWidget (fenetre2) quand le comboBox (fenetre3) change...

Je prendrais plutot un évènement de changement d'index au niveau du combo box:

   connect(ui->comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(retourCelluleZero(QString)));

Ce qui veut dire que la déclaration du ton slot devrait être ainsi:

public slots:
    void retourCelluleZero(QString texte);

si c'est fenetre2 qui crée fenetre3, tu devrais avoir une référence de fenetre2 dans fenetre3 en tant qu'attibut initialisé par le constructeur de fenetre3.

Si on part du principe que tu as un attribut "fenetre2" qui est un attribut de fenetre3 et qui pointe sur ta fenetre 2, le code du slot peur ressembler à ça:

void Fenetre3::retourCelluleZero(QString texte)
{
    fenetre2->ui->tableWidget->item(0,0)->setText(texte);

}

Ce qui mettrait le texte de la comboBox dans la Cellule en 0,0 du tableWidget.

Attention si tu n'as pas initialiser les cellules du tableWidget tu auras une erreur




Retour affichage cellule

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown