J'ai créé 2 fenêtres avec Qt Designer et je veux dans la première fenêtre avec le bouton "..." ouvrir la deuxième fenêtre correctement. J'ai essayé de le faire, merci de votre aide.QPushButton pour ouvrir QWidget
firstwindow.cpp
#include "firstwindow.h"
#include "ui_firstwindow.h"
#include "secondwindow.h"
#include "ui_secondwindow.h"
FirstWindow::FirstWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::FirstWindow)
{
ui->setupUi(this);
ui->buttonapply->setText("Valider");
ui->buttoncancel->setText("Annuler");
ui->buttonetc->setText("...");
ui->buttonnext->setIcon(QIcon(":/Images/Images/Haut.png"));
ui->buttonprevious->setIcon(QIcon(":/Images/Images/Bas.png"));
connect(ui->buttonetc, SIGNAL(clicked()), this, SLOT(ShowSecondWindow()));
}
FirstWindow::~FirstWindow()
{
delete ui;
}
void FirstWindow::ShowSecondWindow()
{
SecondWindow window;
window.show();
}
firstwindow.h
#ifndef FIRSTWINDOW_H
#define FIRSTWINDOW_H
#include <QApplication>
#include <QWidget>
#include <QIcon>
#include "secondwindow.h"
#include "ui_secondwindow.h"
namespace Ui {
class FirstWindow;
}
class FirstWindow : public QWidget
{
Q_OBJECT
public:
explicit FirstWindow(QWidget *parent = 0);
~FirstWindow();
public slots:
void ShowSecondWindow();
private:
Ui::FirstWindow *ui;
SecondWindow *window;
};
#endif // FIRSTWINDOW_H
secondwindow.cpp
#include "firstwindow.h"
#include "ui_firstwindow.h"
#include "secondwindow.h"
#include "ui_secondwindow.h"
SecondWindow::SecondWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::SecondWindow)
{
ui->setupUi(this);
}
SecondWindow::~SecondWindow()
{
delete ui;
}
secondwindow.h
#ifndef SECONDWINDOW_H
#define SECONDWINDOW_H
#include <QWidget>
#include "firstwindow.h"
#include "ui_firstwindow.h"
namespace Ui {
class SecondWindow;
}
class SecondWindow : public QWidget
{
Q_OBJECT
public:
explicit SecondWindow(QWidget *parent = 0);
~SecondWindow();
private:
Ui::SecondWindow *ui;
};
#endif // SECONDWINDOW_H
main.cpp
#include "firstwindow.h"
#include "ui_firstwindow.h"
#include "secondwindow.h"
#include "ui_secondwindow.h"
int main(int argc, char **argv)
{
QApplication program(argc, argv);
FirstWindow window;
window.setWindowTitle("BASELFI - Programme - © 2016 H2A");
window.setWindowIcon(QIcon(":/Images/Images/Bouclier.png"));
window.setFixedSize(340, 270);
window.show();
return program.exec();
}
'window' est une variable locale dans votre gestionnaire, il est détruit immédiatement lorsque la fonction se termine. Créez une instance de 'SecondWindow' avec new et stockez le pointeur quelque part, ou utilisez' doModal() 'si la deuxième fenêtre est une boîte de dialogue et ne devrait exister que pendant une courte période. –
@KarstenKoop, Peut-être pourriez-vous écrire du code. Ce sera un exemple à l'avenir. – Meugiwara