Bonjour,
je vais exposer mon problème : j'ai deux QLineEdit. Je souhaiterais que lorsque j'écris dans le premier, le second affiche en temps réel la valeur du premier, mais pas seulement cela, qu'il soit modifié également, par exemple que tous les caractères soient mis en majuscules. Vous conviendrez que si l'on ne considère pas ce dernier souhait(la modification), cela est simplissime et peut se réaliser comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // Le main.cpp #include <QApplication> #include "MainWindow.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 // Le header de la fenêtre principale #ifndef MAIN_WINDOW_H #define MAIN_WINDOW_H #include <QString> #include <QtGui> class MainWindow : public QWidget { public: MainWindow(); private: QLineEdit *field_1; QLineEdit *field_2; QVBoxLayout *mainLayout; }; #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 //L'implémentation de la fenêtre principale #include "MainWindow.h" MainWindow::MainWindow() { field_1 = new QLineEdit; field_2 = new QLineEdit; mainLayout = new QVBoxLayout(this); mainLayout->addWidget(field_1); mainLayout->addWidget(field_2); QObject::connect(field_1, SIGNAL(textChanged(const QString &)), field_2, SLOT(setText(const QString &))); }
Lorsque je crée mon propre slot, et pour faire strictement la meme chose que le code ci-dessus, rien ne va plus... ce code ne fonctionne pas, le voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // Le main.cpp #include <QApplication> #include "MainWindow.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // Le header de la fenêtre principale #ifndef MAIN_WINDOW_H #define MAIN_WINDOW_H #include <QString> #include <QtGui> class MainWindow : public QWidget { Q_OBJECT public: MainWindow(); signals: public slots: void set_field_real_time(const QString &); private: QLineEdit *field_1; QLineEdit *field_2; QVBoxLayout *mainLayout; }; #endifJ'aimerais bien comprendre pourquoi le deuxième code que je vous présente ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 //L'implémentation de la fenêtre principale #include "MainWindow.h" void MainWindow::set_field_real_time(const QString &field) { field_2->setText(field); } MainWindow::MainWindow() { field_1 = new QLineEdit; field_2 = new QLineEdit; mainLayout = new QVBoxLayout(this); mainLayout->addWidget(field_1); mainLayout->addWidget(field_2); QObject::connect(field_1, SIGNAL(textChanged(const QString &)), field_2, SLOT(set_field_real_time(const QString &)))); }
Merci de votre attention.
Cordialement
Partager