1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #include <QApplication>
#include <QTextCodec>
#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
class FenetreTitreVariable : public QWidget
{
Q_OBJECT
public:
FenetreTitreVariable();
QLineEdit *ligne();
public slots:
void captureQLineEdit();
private:
QLineEdit m_ligne;
};
FenetreTitreVariable::FenetreTitreVariable()
// surcharge du constructeur de QWidget qui ajoute une QLineEdit fille à la fenetre
{
QLineEdit m_ligne("<-- cliquer pour effacer",this);
m_ligne.move(125,25);
m_ligne.resize(200,25);
}
void FenetreTitreVariable::captureQLineEdit()
// SLOT qui change le titre de la fenetre par le texte contenu dans m_ligne
{
setWindowTitle(m_ligne.text());
}
QLineEdit *FenetreTitreVariable::ligne()
// retourne l'adresse mémoire de l'objet m_ligne de type QLineEdit
{
return &m_ligne;
}
#include "main.moc"
// afin de pouvoir utiliser une classe qui comprend la macro Q_OBJECT
// sans avoir à mettre cette classe dans des .h et .cpp spécifiques
// (à inclure APRÈS la classe en question)
// Penser à refaire un qmake en cas d'erreur 'vtable'
int main(int argc, char *argv[])
{
QApplication monApplication(argc, argv);
// Pour l'affichage correct des caractères si le codage est fait en UTF-8
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
FenetreTitreVariable fenetre;
fenetre.setWindowTitle("Fenetre et sa QLineEdit");
fenetre.setFixedSize(350,100);
QPushButton bouton("Effacer la ligne", &fenetre);
bouton.move(25,25);
bouton.resize(80,25);
QWidget::connect(&bouton,SIGNAL(clicked()),fenetre.ligne(),SLOT(clear()));
// QWidget::connect(ligne,SIGNAL(textEdited(QString)),&fenetre,SLOT(setWindowTitle(QString)));
QWidget::connect(fenetre.ligne(),SIGNAL(editingFinished()),&fenetre,SLOT(captureQLineEdit()));
fenetre.show();
return monApplication.exec();
} |
Partager