Bonjour ;
je veux appeler une fenêtre à partir d'un bouton mais je n'arrive pas à le faire qui peux m'aider .
cordialement
Bonjour ;
je veux appeler une fenêtre à partir d'un bouton mais je n'arrive pas à le faire qui peux m'aider .
cordialement
Bonjour
Celui qui peux vous aider est une personne qui peut lire votre code actuel.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Sans plus d'information, il est juste possible de te rediriger vers le concept de signal et de slot (par exemple, lis http://qt.developpez.com/tutoriels/introduction-qt/ pour une introduction assez complète).
Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.
Créer des applications graphiques en Python avec PyQt5
Créer des applications avec Qt 5.
Pas de question d'ordre technique par MP !
Bonjour ;voila mon code:
main.cpp:
le mainwindow.cpp
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 #include "mainwindow.h" #include <QApplication> #include <QtGui> #include <QPixmap> #include <QLabel> #include "ui_mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
le mainwindow.h
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 #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_2_clicked() { QWidget::close(); }
et la fentre que je veux appelé est lecture dont le code est le suivant:
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 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_pushButton_2_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
lecture.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include "lecture.h" #include "ui_lecture.h" lecture::lecture(QWidget *parent) : QMainWindow(parent), ui(new Ui::lecture) { ui->setupUi(this); } lecture::~lecture() { delete ui; }
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 #ifndef LECTURE_H #define LECTURE_H #include <QMainWindow> namespace Ui { class lecture; } class lecture : public QMainWindow { Q_OBJECT public: explicit lecture(QWidget *parent = 0); ~lecture(); private: Ui::lecture *ui; }; #endif // LECTURE_H
Ici :
C'est la fonction qui est appelée lorsque l'on appuie sur le bouton. Pourquoi ne pas créer la nouvelle fenêtre, aussi, dans cette fonction (genre new lecture;).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void MainWindow::on_pushButton_2_clicked() { QWidget::close(); }
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
(Je ne suis qu'un débutant, mais je vais essayer de t'aider)
Dans le CPP de ta première fenêtre tu dois créer la connexion :
Et ensuite dans ton VOID, tu ouvre la deuxième fenêtre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part QObject::connect("le nom de ton bouton", SIGNAL(clicked()), this, SLOT( "le nom du VOID... à ouvrir()));
Essai et dis moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 lecture *f = new lecture(); f->show();
j'ai pensé a cette méthode mais elle m'affiche qu'une fenêtre vide or que moi je veux afficher la fenêtre qui contient mon travail (ya d'autre bouton et image à afficher)
voila le code que j'ai utiliser pour ceci ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 QWidget *form = new QWidget; form->show(); hide();
Si tu n'as pas toujours réussi, voici un exemple.
Par contre, fais attention entre les : public:, public slots:, private.
Ou cas où, n'oublie pas d'exécuter qmake.
main :
mainwindow.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
mainwindow.cpp
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 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QPushButton> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void ouvreFenetreLecture(); private: Ui::MainWindow *ui; QPushButton *bouton; QPushButton *bouton2; }; #endif // MAINWINDOW_H
lecture.h
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44 #include "mainwindow.h" #include "ui_mainwindow.h" #include "lecture.h" #include <QPushButton> #include <QVBoxLayout> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QWidget *zoneCentrale = new QWidget; bouton = new QPushButton("BOUTON"); bouton2 = new QPushButton("QUITTER"); QVBoxLayout *boxLayout = new QVBoxLayout; boxLayout->addWidget(bouton); boxLayout->addWidget(bouton2); zoneCentrale->setLayout(boxLayout); setCentralWidget(zoneCentrale); QObject::connect(bouton2, SIGNAL(clicked()), qApp, SLOT(quit())); QObject::connect(bouton, SIGNAL(clicked()), this, SLOT(ouvreFenetreLecture())); } void MainWindow::ouvreFenetreLecture() { lecture *f = new lecture(); f->show(); } MainWindow::~MainWindow() { delete ui; }
lecture.cpp
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 #ifndef LECTURE_H #define LECTURE_H #include <QMainWindow> #include<QPushButton> namespace Ui { class lecture; } class lecture : public QMainWindow { Q_OBJECT public: explicit lecture(QWidget *parent = 0); ~lecture(); private: Ui::lecture *ui; QPushButton *bouton3; }; #endif // LECTURE_H
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 #include "lecture.h" #include "ui_lecture.h" #include <QPushButton> #include <QVBoxLayout> lecture::lecture(QWidget *parent) : QMainWindow(parent), ui(new Ui::lecture) { ui->setupUi(this); QWidget *zoneCentrale = new QWidget; bouton3 = new QPushButton("FERMER"); QVBoxLayout *boxLayout = new QVBoxLayout; boxLayout->addWidget(bouton3); zoneCentrale->setLayout(boxLayout); setCentralWidget(zoneCentrale); QObject::connect(bouton3, SIGNAL(clicked()), this, SLOT(close())); } lecture::~lecture() { delete ui; }
Merci pour vos réponse ça marche maintenant
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager