Browse Source

Ajout de la couleur du pion

Francois Drouhard 6 years ago
parent
commit
135848b4db
4 changed files with 44 additions and 18 deletions
  1. 3 0
      ChronoCheckMate.pro
  2. 26 9
      Chronometre.cpp
  3. 8 3
      Chronometre.h
  4. 7 6
      MaFenetre.cpp

+ 3 - 0
ChronoCheckMate.pro

@@ -7,6 +7,7 @@ TARGET = ChronoCheckMate
 INCLUDEPATH += .
 QT += widgets
 QT += multimedia
+QT += gui
 
 # The following define makes your compiler warn you if you use any
 # feature of Qt which has been marked as deprecated (the exact warnings
@@ -29,3 +30,5 @@ SOURCES += Chronometre.cpp MaFenetre.cpp main.cpp \
 
 RESOURCES += \
     ressources.qrc
+
+FORMS +=

+ 26 - 9
Chronometre.cpp

@@ -29,25 +29,41 @@
 #include <QDebug>
 #include <QFont>
 #include <QTime>
+#include <QGroupBox>
+#include <QDebug>
 
-Chronometre::Chronometre (const QString & nom , QTime const& tempsDepart, QWidget * parent = nullptr) :
-    QGroupBox (nom , parent),
+Chronometre::Chronometre (const QString & nom, QString unecouleur, QTime const& tempsDepart, QWidget * parent = nullptr) :
+    QWidget (parent),
+    couleur(unecouleur),
     temps(tempsDepart),
     msTempsDepart(tempsDepart)
 {
-    setFlat(false);
+    QHBoxLayout *layoutPrincipal = new QHBoxLayout;
+    QLabel *labelPion = new QLabel;
+    pion = new QPixmap(QString (":/ressources/pawn_%1.svg").arg(couleur));
+    labelPion->setPixmap(*pion);
+
+    groupBox = new QGroupBox(nom);
+    groupBox->setFlat(false);
 
-    QFont font("Arial" , 22 , 5);
+    QFont font("Arial" , 25, 75);
 
     ecranTemps = new QLabel(temps.toString("hh:mm:ss:zzz"));
+    ecranTemps->setMinimumWidth(195);
     ecranTemps->setFont(font);
 
     ecranLayout = new QHBoxLayout;
     ecranLayout->addSpacing(40);
-    ecranLayout->addWidget(ecranTemps);
+    ecranLayout->addStretch(1);
+    ecranLayout->addWidget(ecranTemps, 0);
+    ecranLayout->addStretch(1);
     ecranLayout->addSpacing(40);
 
-    setLayout (ecranLayout);
+    layoutPrincipal->addWidget(labelPion,0);
+    layoutPrincipal->addWidget(groupBox,1);
+
+    groupBox->setLayout (ecranLayout);
+    setLayout(layoutPrincipal);
 	
     timer = new QTimer  (this);
     timer->setInterval (INTERVAL);
@@ -55,7 +71,7 @@ Chronometre::Chronometre (const QString & nom , QTime const& tempsDepart, QWidge
 }
 
 void Chronometre::modifierNomJoueur(QString joueur) {
-    setTitle(joueur);
+    groupBox->setTitle(joueur);
 }
 
 void Chronometre::definirTemps(QTime const& tempsDepart) {
@@ -82,6 +98,7 @@ void Chronometre::stop () {
 void Chronometre::affichage () {
     QString chaineTemps = temps.toString("hh:mm:ss:zzz");
     ecranTemps->setText(chaineTemps);
+    //qDebug() << "Taille : " << ecranTemps->width();
 }
 
 void Chronometre::reinit () {
@@ -103,9 +120,9 @@ void Chronometre::basculer () {
 
 QString Chronometre::operator+=(Chronometre const& joueur) const {
     if (temps <= QTime (0,0,0,0)) {
-        return joueur.title();
+        return joueur.groupBox->title();
     } else if (joueur.temps <= QTime(0,0,0,0)) {
-        return title();
+        return groupBox->title();
     }
     return "Nope";
 }

+ 8 - 3
Chronometre.h

@@ -24,21 +24,23 @@
 #define DEF_CHRONOMETRE
  
 
-#include <QGroupBox>
+#include <QWidget>
 #include <QTime>
+class QGroupBox;
 class QLabel;
 class QHBoxLayout;
 class QTimer;
 class QString;
+class QPixmap;
 
 #define INTERVAL 1 // vitesse de défilement (1000ème de secondes)
 
-class Chronometre : public QGroupBox {
+class Chronometre : public QWidget {
 	
 	Q_OBJECT
 	
 	public:
-    Chronometre (const QString & nom , QTime const& tempsDepart, QWidget * parent);
+    Chronometre (const QString & nom , QString unecouleur, QTime const& tempsDepart, QWidget * parent);
 	void start ();
 	void stop ();
 	void affichage ();
@@ -56,6 +58,9 @@ class Chronometre : public QGroupBox {
     void refresh ();
 	
 	private:
+    QString  couleur;
+    QGroupBox *groupBox;
+    QPixmap *pion;
     QTime temps;
     QTime msTempsDepart;
 	QTimer *timer;

+ 7 - 6
MaFenetre.cpp

@@ -44,8 +44,8 @@ MaFenetre::MaFenetre(Options* mesOptions) :
 {
     QWidget *centralWidget = new QWidget;
 
-    chronoBlanc = new Chronometre(option->nomJoueur1() , option->tempsDepart(), this);
-    chronoNoir = new Chronometre(option->nomJoueur2() , option->tempsDepart(), this);
+    chronoBlanc = new Chronometre(option->nomJoueur1(), "white", option->tempsDepart(), this);
+    chronoNoir = new Chronometre(option->nomJoueur2(), "black", option->tempsDepart(), this);
     boutonInverser = new QPushButton ("<->");
     boutonInverser->setMinimumWidth(50);
     boutonInverser->setMaximumWidth(50);
@@ -53,7 +53,7 @@ MaFenetre::MaFenetre(Options* mesOptions) :
 	////////////////// Groupe Définition de la classe ///////////////////////////
     layoutChrono = new QHBoxLayout;
     layoutChrono->addWidget(chronoBlanc);
-    layoutChrono->addWidget(boutonInverser, Qt::AlignVCenter);
+    layoutChrono->addWidget(boutonInverser  , 0, Qt::AlignVCenter);
     layoutChrono->addWidget(chronoNoir);
 
     ///////////////////////////// Menus ////////////////////////////
@@ -74,8 +74,9 @@ MaFenetre::MaFenetre(Options* mesOptions) :
     boutonInverser->setFocusPolicy(Qt::NoFocus);
 	
 	layoutBoutonSwitch = new QHBoxLayout;
-	layoutBoutonSwitch->addWidget (boutonDemarrer);
-    layoutBoutonSwitch->addWidget (boutonArreter);
+    layoutBoutonSwitch->addWidget (boutonDemarrer,0, Qt::AlignLeft);
+    layoutBoutonSwitch->addWidget (boutonArreter, 0, Qt::AlignLeft);
+    layoutBoutonSwitch->addStretch(1);
 
     ///////////////////////////// Aide /////////////////////////////////////
     QLabel *labelAide = new QLabel ("<b>Aide</b><br />Espace : Lancer le chrono/Donner le chrono<br />Entrée : Stopper les deux chronos");
@@ -110,7 +111,6 @@ void MaFenetre::etatBoutons (bool etatBoutonStart, bool etatBoutonStop, bool eta
     boutonDemarrer->setEnabled (etatBoutonStart);
     boutonArreter->setEnabled (etatBoutonStop);
     boutonInverser->setEnabled(etatBoutonInverser);
-    //boutonInverser->setVisible(etatBoutonInverser);
 }
 
 ////////////////// SLOTS ////////////////////////
@@ -122,6 +122,7 @@ void MaFenetre::inverser() {
     chronoNoir = chronoTemp;
     layoutChrono->insertWidget(0 , chronoBlanc);
     layoutChrono->addWidget(chronoNoir);
+
 }
 
 void MaFenetre::demarrer () {