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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#ifndef _window_hh_
#define _window_hh_
#include <QApplication>
#include <QWidget>
#include <QDesktopWidget>
#include <QPoint>
#include <QPainter>
#include <QPaintEvent>
#include <QObject>
#include <QDebug>
#include <iostream>
#include "jeuDeLaVie.hh"
class window: public QWidget {
Q_OBJECT
protected:
class CelluleUI {
};
private:
jeuDeLaVie* _model;
QWidget* _jdvWidget;
public:
window(jeuDeLaVie* model,QWidget *parent = 0):
QWidget(parent)
{
_model=model;
/* Construction de la fenêtre Qt <<indépendante>> */
setWindowTitle(tr("# Jeu de la vie #"));
setFixedSize(600, 300);
/* Center la fenêtre */
QDesktopWidget *widget = QApplication::desktop();
int desktop_width = widget->width();
int desktop_height = widget->height();
int x = desktop_width / 2 - width() / 2;
int y = desktop_height / 2 - height() / 2 - 25;
move(QPoint(x, y));
buildJdvWidget();
setUpdatesEnabled(true);
_model->connecterAchange(this,SLOT(draw()));
}
~window(){
if(_jdvWidget) delete _jdvWidget;
}
private :
/* Construction de la fenêtre Qt d'affichage du modele */
void buildJdvWidget() {
_jdvWidget=new QWidget(this);
_jdvWidget->resize(600, 300);
_jdvWidget->setPalette(QPalette(QColor(250, 250, 250)));
_jdvWidget->setAutoFillBackground(true);
}
public:
void paintEvent(QPaintEvent * /*qevent*/) {
std::cout << "paintEvent() called" << std::endl;
QPainter painter(_jdvWidget);
painter.drawText(10, 10,tr("drawText works!")); // But it doesn't :(
}
protected slots: void draw() {
std::cout << "slots() called" << std::endl;
update();
}
};
#endif |
Partager