Bonjour à tous,
j'ai le programme suivant :
.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 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QWidget> #include <QPushButton> #define BUFSIZE 256 class MainWindow : public QWidget { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private : QPushButton *boutton; char *outputBuffer; bool *bypass; private slots : void buttonClicked(); }; #endif // MAINWINDOW_H
.cpp
ce programme marche très bien sauf si j'inverse dans le .h les déclaration suivantes :
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 "mainwindow.h" #include <QGridLayout> #include <QDebug> mainWindow::MainWindow(QWidget *parent) : QWidget(parent) { qDebug() << "Well hello there!"; boutton = new QPushButton("Click here"); QGridLayout *layout = new QGridLayout(); layout->addWidget(boutton, 0, 0, 2, 2); setLayout(layout); *bypass = false; outputBuffer = new char[BUFSIZE]; connect(boutton, SIGNAL(clicked(bool)), this, SLOT(buttonClicked())); } void MainWindow::buttonClicked() { qDebug()<<"You just clicked"; } MainWindow::~MainWindow() { qDebug() << "Job done! see ya later!"; }
j'ai beau me creuser la tête, je ne comprends pas ce problème;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private : // compile et fonctionne char *outputBuffer; bool *bypass; //Compile et crash private : bool *bypass; char *outputBuffer;
j'ai placé ce message ici plutôt qu'en Qt, parce les classes impliquée sont standart. mais si c'est spécifique à Qt, je déplacerai le problème.
merci d'avance pour votre aide.
Partager