1) Oui on peut ajouter un QLineEdit dans un QFormLayout
2) J'en sais rien ton code est illisible (surtout teste.cpp et c'est quand même là que se trouve le plus important), édite ton message et copie ton code en utilisant le bouton dédié stp
- Edité par ThibaultVnt 30 novembre 2021 à 8:35:43
#include<Teste.h>
Fprincipale::Fprincipale():QWidget()
{
setFixedSize(300,150);
QLineEdit* nom = new QLineEdit("Votre nom",nom);
//Construction du bouton 'Quitter'
BtnQuitter = new QPushButton("Quitter",this);
BtnQuitter->setGeometry(200,100,80,30);
//Connexion du Boutton pour la fermeture de l'application
QObject::connect(BtnQuitter,SIGNAL(clicked()),qApp,SLOT(quit()));
}
"2nd function call argument is an uninitialized value"
Si on traduit littéralement ce message d'erreur ça donne : Le 2ème argument de la fonction appelée est une valeur non initialisée
Quelle est la fonction dont on parle ? C'est le constructeur du QLineEdit
QLineEdit *nom = new QLineEdit("Votre Nom :",nom);
Quel est son deuxième paramètre ? C'est la variable nom
Et si on regarde ton code, nom c'est justement le nom de ta variable de type QLineEdit (il est très ma choisis ce nom de variable, ça fait des phrases tordues quand on explique). Donc tu donnes en 2nd paramètre de ton constructeur l'objet que tu es en train de construire. Comme il n'est pas encore construit, le compilateur te dit tout simplement que tu utilises une variable non initialisée comme paramètre de fonction
Si on regarde la doc de Qt et le constructeur de QLineEdit, on voit que le 2nd argument est censé être un pointeur sur un QWidget qui deviendra le parent du QLineEdit. Un QLineEdit ne peut pas être son propre parent, ça n'a pas de sens.
Tu essayes d'afficher ton QLineEdit dans ta Fprincipale, le minimum à faire pour que ton code fonctionne c'est de dire que ta fenêtre principale est le parent du QLineEdit
nom = new QLineEdit("Votre Nom :",this);
Comme tu veux ensuite le mettre dans un QFormLayout, le mieux est donc de créer ton QFormLayout avant de créer ton QLineEdit et de placer le QLineEdit dans le QFormLayout existant pour que le QFormLayout soit le parent du QLineEdit
- Edité par ThibaultVnt 1 décembre 2021 à 12:01:16
#include <Teste.h>
Fprincipale::Fprincipale():QWidget()
{
setWindowTitle("Les Layouts");
setWindowIcon(QIcon("icone.png"));
resize(300, 150);
Vnom = new QLineEdit("Votre nom : ",this);
Vnom->setGeometry(50,20,80, 30);
// Construction du bouton 'Quitter'
BtnQuitter = new QPushButton("Quitter", this);
BtnQuitter->setGeometry(200,100,80, 30);
// Construction du bouton 'Voir'
BtnVoir = new QPushButton("Voir", this);
BtnVoir->setGeometry(100,100,40, 20);
//Connexion du click de BtnVoir pour voir le contenu de Vnom
QObject::connect(BtnVoir, SIGNAL(clicked()), this, SLOT(Voir()));
// Connexion du click de BtnQuitter pour la fermeture de l'application
QObject::connect(BtnQuitter, SIGNAL(clicked()), qApp, SLOT(quit()));
}
void Fprincipale::Voir()
{
QMessageBox::StandardButton (this, &Vnom,
QMessageBox::StandardButtons buttons = Ok,
QMessageBox::StandardButton defaultButton = NoButton)
}
Cela à l'air d'aller ça marche sauf : - setWindowIcon(QIcon("icone.png")) => l’icône n'apparait pas problème de path() ?? le fichier étant sur ../build../debug/ - connexion du boutton 'voir' n'est pas encore faite?? - Reste un peu d'ergonomie sur le form pour l'emplacement de tous les contrôles les uns par rapport au autres. - UNE grande question : QUELLE EST LA DIFFÉRENCE entre le controle form et QFormLayout? J'ai un peu de mal à assimiler l'anglais.
Pardon, je refait et il apparait sur le post ci dessus car je l'ai modifié.
Merci pour le tuyau.
Bonne fin de journée.
- Edité par allaham 1 décembre 2021 à 17:48:43
Encapsulation
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
le code FAIT le bonheur (pour moi en tous cas)
En recherche d'emploi.