voila, je crée un carnet d'adresse, j'ai tout bien programmé (apparence, connection des SLOT et SIGNAL...) mais je voudrais que l'utilisateur puisse revoir le dernier contact (bouton "précédent") (et par la suite le suivant a faire lorsque j'aurais réglé se probleme) afin de le modifier par exemple
donc voila mon code (si au passage vous pouviez me donner des conseils pour le raccourcir et m'aider pour les QStrings car je l'ai met de fois )
#include "AddressBook.h"
AddressBook::AddressBook()
{
// Creation des boutons de droite + son layout
addButton = new QPushButton(tr("Ajouter contact"));
addButton->setEnabled(true); // Affiche et active le bouton
submitButton = new QPushButton(tr("Valider"));
submitButton->setEnabled(false); // Désactive le bouton (mais le laisse afficher)
cancelButton = new QPushButton(tr("Annuler"));
cancelButton->setEnabled(false);
QVBoxLayout *buttonRightLayout = new QVBoxLayout;
buttonRightLayout->addWidget(addButton);
buttonRightLayout->addWidget(submitButton);
buttonRightLayout->addWidget(cancelButton);
buttonRightLayout->addStretch();
// Creation des boutons du bas + son layout
previousButton = new QPushButton(tr("Précédent"));
previousButton->setEnabled(false);
nextButton = new QPushButton(tr("Suivant"));
nextButton->setEnabled(false);
QHBoxLayout *buttonDownLayout = new QHBoxLayout;
buttonDownLayout->addWidget(previousButton);
buttonDownLayout->addWidget(nextButton);
// Creation des champs a remplir + son layout
QLabel *nameLabel = new QLabel(tr("Nom :"));
nameLine = new QLineEdit;
nameLine->setReadOnly(true);
QLabel *surnameLabel = new QLabel(tr("Prénom :"));
surnameLine = new QLineEdit;
surnameLine->setReadOnly(true);
QLabel *addressLabel = new QLabel(tr("Adresse (rue):"));
addressLine = new QLineEdit;
addressLine->setReadOnly(true);
QLabel *cityLabel = new QLabel(tr("Ville :"));
cityLine = new QLineEdit;
cityLine->setReadOnly(true);
QLabel *phoneLabel = new QLabel(tr("Tel. :"));
phoneLine = new QLineEdit;
phoneLine->setReadOnly(true);
QLabel *emailLabel = new QLabel(tr("E-m@il :"));
emailLine = new QLineEdit;
emailLine->setReadOnly(true);
QGridLayout *chpLayout = new QGridLayout;
chpLayout->addWidget(nameLabel, 1, 0);
chpLayout->addWidget(nameLine, 1, 1);
chpLayout->addWidget(surnameLabel, 2, 0);
chpLayout->addWidget(surnameLine, 2, 1);
chpLayout->addWidget(addressLabel, 3, 0);
chpLayout->addWidget(addressLine, 3, 1);
chpLayout->addWidget(cityLabel, 4, 0);
chpLayout->addWidget(cityLine, 4, 1);
chpLayout->addWidget(phoneLabel, 5, 0);
chpLayout->addWidget(phoneLine, 5, 1);
chpLayout->addWidget(emailLabel, 6, 0);
chpLayout->addWidget(emailLine, 6, 1);
chpLayout->addLayout(buttonDownLayout, 7, 1);
// Creation du layout principale
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addLayout(chpLayout, 1, 0);
mainLayout->addLayout(buttonRightLayout, 1, 2);
// Reste du constructeur (connection, titre...)
setLayout(mainLayout);
setWindowTitle(tr("Open Book"));
connect(addButton, SIGNAL(clicked()), this, SLOT(addContact()));
connect(submitButton, SIGNAL(clicked()), this, SLOT(submitContact()));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(cancel()));
connect(previousButton, SIGNAL(clicked()), this, SLOT(previous()));
connect(nextButton, SIGNAL(clicked()), this, SLOT(next()));
}
void AddressBook::addContact()
{
nameLine->setReadOnly(false);
surnameLine->setReadOnly(false);
addressLine->setReadOnly(false);
cityLine->setReadOnly(false);
phoneLine->setReadOnly(false);
emailLine->setReadOnly(false);
addButton->setEnabled(false);
submitButton->setEnabled(true);
cancelButton->setEnabled(true);
previousButton->setEnabled(true);
nextButton->setEnabled(true);
}
void AddressBook::submitContact()
{
QString name = nameLine->text();
QString surname = surnameLine->text();
QString address = addressLine->text();
QString city = cityLine->text();
QString phone = phoneLine->text();
QString email = emailLine->text();
if (name == "" || surname == "" || address == "")
{
QMessageBox::warning(this, tr("Champ(s) vide"), tr("Veuillez rentrer le nom, le prénom ou l'adresse."));
return;
}
if (!name.isEmpty() && !surname.isEmpty() && !address.isEmpty())
{
QMessageBox::information(this, tr("Validation terminée"), tr("Validation réalisé avec succes !"));
nameLine->setReadOnly(true);
surnameLine->setReadOnly(true);
addressLine->setReadOnly(true);
cityLine->setReadOnly(true);
phoneLine->setReadOnly(true);
emailLine->setReadOnly(true);
addButton->setEnabled(true);
submitButton->setEnabled(false);
cancelButton->setEnabled(false);
previousButton->setEnabled(false);
nextButton->setEnabled(false);
nameLine->clear(); // clear est un SLOT qui "vide" le QLineEdit
surnameLine->clear();
addressLine->clear();
cityLine->clear();
phoneLine->clear();
emailLine->clear();
return;
}
}
void AddressBook::cancel()
{
int reponse = QMessageBox::question(this, tr("Confirmation de l'annulation"), tr("Etes-vous sûr de vouloir supprimer ce contact ?"), QMessageBox::Yes | QMessageBox::No);
if(reponse == QMessageBox::Yes)
{
nameLine->setReadOnly(true);
surnameLine->setReadOnly(true);
addressLine->setReadOnly(true);
cityLine->setReadOnly(true);
phoneLine->setReadOnly(true);
emailLine->setReadOnly(true);
addButton->setEnabled(true);
submitButton->setEnabled(false);
cancelButton->setEnabled(false);
previousButton->setEnabled(false);
nextButton->setEnabled(false);
nameLine->clear(); // clear est un SLOT qui "vide" le QLineEdit
surnameLine->clear();
addressLine->clear();
cityLine->clear();
phoneLine->clear();
emailLine->clear();
}
if(reponse == QMessageBox::No)
{
QMessageBox::information(this, tr(" "), tr("Aucune modification n'a été faite."));
return;
}
}
void AddressBook::previous()
{
QString name = nameLine->text(); // ICI lorsque je le met dans le .h
QString surname = surnameLine->text(); // et que je compile, le .exe ne se
QString address = addressLine->text(); // lance pas (un rapport de windows
QString city = cityLine->text(); // apparait)
QString phone = phoneLine->text();
QString email = emailLine->text();
QString oldName = name;
QString oldSurname = surname;
QString oldAddress = address;
QString oldCity = city;
QString oldPhone = phone;
QString oldEmail = email;
}
void AddressBook::next()
{
}
ICI lorsque je le met dans le .h
et que je compile, le .exe ne se
lance pas (un rapport de windows
apparait)
Qu'est ce que tu met dans le .h en fait ?
[Qt]Aide pour l'affichage de QString dans un QLineEdit
× 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.