Bonjour,
J'ai un petit problème avec l'appel d'un constructeur d'une classe dans un autre constructeur.
Dans mon cas, la classe window contient un objet de la classe Board. Avant je n'appelais pas de constructeur, et tout était géré automatiquement.
Mais maintenant je souhaite faire passer un bool au constructeur de Board.
J'ai essayer en créant simplement l'objet dans le constructeur ( comme avec n'importe quel autre objet comme les QPushbutton ), ou en le déclarant avant le code du constructeur, mais aucune solution ne marche.
Voici le code des .h et des Constructeurs :
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 class Window : public QWidget { Q_OBJECT public: Window(QWidget *parent = 0,bool mod = true); signals: void launchGame(); void nextTurn(); void loopCount(int); protected: void paintEvent ( QPaintEvent * event ); void mousePressEvent ( QMouseEvent * event ); private slots: void game(); void end(); void pause(); private: Board conway; ThGui command; bool first; bool onGoing; int loopCt; bool modification; };
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 class Board : public QThread { Q_OBJECT public: enum{LENGTH = 150, WITDH = 150 }; Board(bool buildMode = true); Board(const Board&); void run(); int nextValue(); void resetSearch(); bool isEmpty(); void insertValue(int); ~Board() {} signals: void paint(); private slots: void loopEvent (); void load(QString); void save(QString); private: int neighboorCell(int); int searchValue; QList<int> gameBoard; };mon but est donc de passer le bool mod récupérer par le constructeur de window au constructeur de Board.
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 Window::Window(QWidget *parent,bool mod) :QWidget(parent) { //Board conway = new Board(mod); command.show(); first = true; modification = true; // onGoing = false; setMinimumSize (Board::LENGTH*5 , Board::WITDH*5 ); setMaximumSize (Board::LENGTH*5 , Board::WITDH*5 ); connect(&conway,SIGNAL(paint()),this,SLOT(game())); connect(&command,SIGNAL(beginEnd()),this,SLOT(end())); connect(&command,SIGNAL(begin()),this,SLOT(game())); connect(&command,SIGNAL(pause()),this,SLOT(pause())); connect(this,SIGNAL(loopCount(int)),&command,SLOT(loopCount(int))); connect(this,SIGNAL(nextTurn()),&conway,SLOT(loopEvent())); connect(&command,SIGNAL(loadFile(QString)),&conway,SLOT(load(QString))); connect(&command,SIGNAL(saveFile(QString)),&conway,SLOT(save(QString))); //conway.start(); loopCt = 0; }
Merci d'avance
Partager