Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. install gif

install gif

Scheduled Pinned Locked Moved Unsolved French
4 Posts 2 Posters 442 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    ludoraspberry
    wrote on last edited by
    #1

    salut a tous , j'essais d'installer des gifs et j'arrive a l'appeler au moment que je veux mais il s'accade ,
    je possède un mainwindow qui ouvre une fenetre(interface) ou dans celle ci mon gif est commander par une variable extern .
    il s'ouvre bien mais tourne au ralenti car dans cette fenetre il y a un QTimer .
    quand je ferme la fenetre (interface) et si mon gif est ->start() il fonctionne normalement!

    comment puis-je le faire tourner correctement sur ma fenetre (interface).

    merci

    L 1 Reply Last reply
    0
    • L ludoraspberry

      salut a tous , j'essais d'installer des gifs et j'arrive a l'appeler au moment que je veux mais il s'accade ,
      je possède un mainwindow qui ouvre une fenetre(interface) ou dans celle ci mon gif est commander par une variable extern .
      il s'ouvre bien mais tourne au ralenti car dans cette fenetre il y a un QTimer .
      quand je ferme la fenetre (interface) et si mon gif est ->start() il fonctionne normalement!

      comment puis-je le faire tourner correctement sur ma fenetre (interface).

      merci

      L Offline
      L Offline
      ludoraspberry
      wrote on last edited by
      #2

      @ludoraspberry said in install gif:

      salut a tous , j'essais d'installer des gifs et j'arrive a l'appeler au moment que je veux mais il s'accade ,
      je possède un mainwindow qui ouvre une fenetre(interface) ou dans celle ci mon gif est commander par une variable extern .
      il s'ouvre bien mais tourne au ralenti car dans cette fenetre il y a un QTimer .
      quand je ferme la fenetre (interface) et si mon gif est ->start() il fonctionne normalement!

      comment puis-je le faire tourner correctement sur ma fenetre (interface).

      merci

      interface cpp

      #include "interface.h"
      #include <signal.h>
      #include "BB_DS18B20.hpp"
      #include "gpioPin.hpp"
      #include "relais.hpp"
      #include "lectureTemps.hpp"
      #include "commandes.hpp"
      #include "vitesseVentilateurs.hpp"
      #include "affichageTerminal.hpp"
      #include "gainable.hpp"
      
      extern BB_DS18B20 * ds18b20;
      
      extern bool compresseurFroid;
      
      Interface::Interface(QWidget *parent)
          :QWidget (parent)
          ,initLCD {QString::number(0.00,'f',2)}
          ,m_timerStart(1000)
      {
          m_timer1 = new QTimer(this);
      }
         
      void Interface::dispInterface()
      {
          m_window1 = new QLabel(this);
          m_window1 ->hide();
          m_window1 ->setPixmap(QPixmap("/home/ludo/Qt/test2/build/images/file (2) (1).jpg"));
          m_window1 ->showMaximized();
          
          // ligne du haut
          m_disp1 = new QGroupBox("Temp°C Ext",this);
          m_disp1 ->setStyleSheet("QGroupBox:title {color: orangered;}");
          m_disp1 ->setFont(QFont("Times", 18, QFont::Bold));
          m_disp1 ->setGeometry(200,40,240,120);
          m_affTemp1 = new QLCDNumber(m_disp1);
          m_affTemp1 ->setGeometry(0,35,240,80);
          m_affTemp1 ->display(initLCD); //
          
          m_disp2 = new QGroupBox("Temp°C UnitExt",this);
          m_disp2 ->setStyleSheet("QGroupBox:title {color: orangered;}");
          m_disp2 ->setFont(QFont("Times", 18, QFont::Bold));
          m_disp2 ->setGeometry(520,40,240,120);
          m_affTemp2 = new QLCDNumber(m_disp2);
          m_affTemp2 ->setGeometry(0,35,240,80);
          m_affTemp2 ->display(initLCD); //
          
          m_disp3 = new QGroupBox("Temp°C EcUnitExt",this);
          m_disp3 ->setStyleSheet("QGroupBox:title {color: orangered;}");
          m_disp3 ->setFont(QFont("Times", 18, QFont::Bold));
          m_disp3 ->setGeometry(840,40,240,120);
          m_affTemp3 = new QLCDNumber(m_disp3);
          m_affTemp3 ->setGeometry(0,35,240,80);
          m_affTemp3 ->display(initLCD); //
      
          m_disp4 = new QGroupBox("Temp°C UnitInt",this);
          m_disp4 ->setStyleSheet("QGroupBox:title {color: orangered;}");
          m_disp4 ->setFont(QFont("Times", 18, QFont::Bold));
          m_disp4 ->setGeometry(1160,40,240,120);
          m_affTemp4 = new QLCDNumber(m_disp4);
          m_affTemp4 ->setGeometry(0,35,240,80);
          m_affTemp4 ->display(initLCD);
          
          m_disp5 = new QGroupBox("Temp°C EcUnitInt",this);
          m_disp5 ->setStyleSheet("QGroupBox:title {color: orangered;}");
          m_disp5 ->setFont(QFont("Times", 18, QFont::Bold));
          m_disp5 ->setGeometry(1480,40,240,120);
          m_affTemp5 = new QLCDNumber(m_disp5);
          m_affTemp5 ->setGeometry(0,35,240,80);
          m_affTemp5 ->display(initLCD);
          
          m_timer1 ->start(m_timerStart);
          connect(m_timer1,&QTimer::timeout,[this](){startProgramme();});
      }
      
      void Interface::startProgramme()
      {
          lireDS18B20();
          consigneDelta = tempExtLue - delta;
      
          m_affTemp1 ->display(tempExtLue);  // la variable valeur lue sur la sonde
          m_affTemp2 ->display(tempUnitExtLue);
          m_affTemp3 ->display(tempEcExtLue);
          m_affTemp4 ->display(tempUnitIntLue);
          m_affTemp5 ->display(tempEcIntLue);
          
          startGainable();
          fondEcran();
      }
      
      void Interface::fondEcran()
      {
          if (chauffage == true) { // chauffage
      	m_window1 ->hide();
              m_window1 ->setPixmap(QPixmap("/home/ludo/Qt/test2/build/images/earth_heat_drought_46718_1920x1080.jpg"));
      	m_window1 ->showMaximized();
          } else if (froid == true) { // froid
      	m_window1 ->hide();
      	m_window1 ->setPixmap(QPixmap("/home/ludo/Qt/test2/build/images/ice_cube_water_18142_1920x1080.jpg"));
      	m_window1 ->showMaximized();
          } else if (canicule == true) { // canicule
      	m_window1 ->hide();
      	m_window1 ->setPixmap(QPixmap("/home/ludo/Qt/test2/build/images/volcano_art_lava_128500_1920x1080.jpg"));
      	m_window1 ->showMaximized();
          }
      }
          
      void Interface::startGainable()
      {
          time_t rawtime;
          time ( & rawtime);
          cout << ctime ( & rawtime) << endl;
          signal (SIGINT, my_ctrl_c_handler);
          consigneDelta = tempExtLue - delta;
          consigneVentIntCa = consigneDelta + 2;
          commandeFroid();
          commandeChauffage();
          commandeCanicule();
          hysteresisTempVitesseIntCa();
          hysteresisTempVitesseExtFroid();
          hysteresisTempVitesseIntFroid();
          hysteresisTempVitesseExtChauf();
          hysteresisTempVitesseIntChauf();
          affichageTerminal();
          gainable();
      }
      
      void Interface::afficheConsignes()
      {
          m_dispCons = new DispCons();
      }
      
      void Interface::my_ctrl_c_handler(int s)
      {
          desactiveTousRelais();
          digitalWrite (relaiEteHiver, HIGH);
          delete ds18b20;
          release_gpiod();
          exit (0);
      }
      
      void Interface::arretGainable()
      {
          m_timer1 ->stop();
          m_window1 ->hide();
          autoModeEteHiver();
          chauffage = false;
          froid = false;
          ventilation = false;
          
      }
      

      interface H

      #ifndef INTERFACE_H
      #define INTERFACE_H
      
      #include <QtWidgets>
      #include "dispcons.h"
      
      extern float tempExtLue;
      extern float consigneExt;
      extern float consigneCanicule;
      extern float consigneDelta;
      extern float delta;
      
      extern void autoModeEteHiver();
      
      extern bool froid;
      extern bool chauffage;
      extern bool canicule;
      extern bool ventilation;
      
      
      class Interface: public QWidget
      {
          Q_OBJECT
      
      public:
          Interface(QWidget *parent = nullptr);
          
          QLabel *m_window1;
          
          QTimer *m_timer1;
          
          void dispInterface();
          void afficheConsignes();
          void arretGainable();
          
      private:
      
          DispCons *m_dispCons;
          
          QString initLCD; //
          int m_timerStart;  //durée timer entre lecture
          
          QGroupBox *m_disp1; //tempExt
          QLCDNumber *m_affTemp1;
          
          QGroupBox *m_disp2; //tempUnitExt
          QLCDNumber *m_affTemp2;
          
          QGroupBox *m_disp3; //tempEcExt
          QLCDNumber *m_affTemp3;
          
          QGroupBox *m_disp4; //tempUnitInt
          QLCDNumber *m_affTemp4;
          
          QGroupBox *m_disp5; //tempEcInt
          QLCDNumber *m_affTemp5;
          
          void startProgramme();
          void fondEcran();
          void startGainable();
          static void my_ctrl_c_handler (int s);
      };
      
      #endif // INTERFACE_H
      
      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #3

        Bonjour,

        Au vu du nombre d'extern et du signal handler, je soupçonne un programme écrit en C sur lequel une GUI est greffée. Est-ce juste ?
        Vue l'implémentation, j'ai l'impression qu'il doit y avoir une boucle infinie cachée quelque part dans le code non-posté. Est-ce correct ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        L 1 Reply Last reply
        0
        • SGaistS SGaist

          Bonjour,

          Au vu du nombre d'extern et du signal handler, je soupçonne un programme écrit en C sur lequel une GUI est greffée. Est-ce juste ?
          Vue l'implémentation, j'ai l'impression qu'il doit y avoir une boucle infinie cachée quelque part dans le code non-posté. Est-ce correct ?

          L Offline
          L Offline
          ludoraspberry
          wrote on last edited by
          #4

          @SGaist

          mon MAIN

          #include "mainwindow.h"
          #include "lectureTemps.hpp"
          #include "gpioPin.hpp"
          #include "BB_DS18B20.hpp"
          #include "commandes.hpp"
          #include "relais.hpp"
          #include <QApplication>
          
          BB_DS18B20 * ds18b20;
          
          int main(int argc, char *argv[])
          {
          // pin Sondes ds18b20
              int DS_PIN = 4;
              pinMode (DS_PIN, OPENDRAIN_PULLUP);
              ds18b20 = new BB_DS18B20 (gpioline[DS_PIN]);
              
          // pins
              // soties
              pinMode (relaiEteHiver, OUTPUT);
              digitalWrite (relaiEteHiver, HIGH);
              pinMode (relaiComp, OUTPUT);
              digitalWrite (relaiComp, HIGH);
              pinMode (relaiV4V, OUTPUT);
              digitalWrite (relaiV4V, HIGH);
              pinMode (relaiVitesseVentExt, OUTPUT);
              digitalWrite (relaiVitesseVentExt, HIGH);
              pinMode (relaiPetiteVitesseInt, OUTPUT);
              digitalWrite (relaiPetiteVitesseInt, HIGH);
              pinMode (relaiGrandeVitesseInt, OUTPUT);
              digitalWrite (relaiGrandeVitesseInt, HIGH);
              // entrées
              pinMode (thermostats, INPUT_PULLUP);
              pinMode (capteurFiltre, INPUT_PULLUP);
            
          // le fichier ID sur les ds18b20
              loadDSConfig ("DS18B20.conf", ds_ID);
            // charge info sur les ds18b20
              char  ficConf[654] = "DS18B20.conf";
              FILE * confHan = fopen(ficConf, "r");
              if (NULL == confHan) {
                cout << "Le fichier de configuration \n" << ficConf << "\n doit exister\n";
                return (111);
              }
              fclose(confHan);
              loadDSConfig("DS18B20.conf", ds_ID); // protégé contre le cas où il est absent 
              cout << "\n configure\n";
              if (ds_ID.size() < 2) {
                cout << "\nVous devez avoir au moins un thermomètre\n";
                return(112);
              }
            
          // créer  le vecteur contenant la température des DS18b20
              for (uint loop = 0; loop < ds_ID.size(); loop++)
                ds_temperature.push_back (
                -9999.9); //  enregistre une information invalide pour commencer
                
              QApplication a(argc, argv);
              QApplication::setOverrideCursor(QCursor(Qt::BlankCursor));
              MainWindow w;
              return a.exec();
          }
          
          

          mainWindow cpp

          #include "mainwindow.h"
          #include "gpioPin.hpp"
          #include "relais.hpp"
          
          MainWindow::MainWindow()
          {
              baseWindow =new QWidget;
              baseWindow ->setFixedSize(1920,1080);
              baseWindow ->hide();
              
              m_start = new Interface(baseWindow);
              m_start ->dispInterface();
              
              m_marche = new QPushButton("Démarrage ??",baseWindow);
              m_marche ->setGeometry(1080,900,240,95);
              m_marche ->setStyleSheet("font-size: 30px;background-color: lime");
              m_marche ->hide();
              
              m_appel1 = new QPushButton("Consignes",baseWindow);
              m_appel1 ->setGeometry(1340,900,240,95);
              m_appel1 ->setStyleSheet("font-size: 30px;");
              m_appel1 ->show();
              
              m_stop = new QPushButton("Stop ??",baseWindow);
              m_stop ->setGeometry(1600,900,240,95);
              m_stop ->setStyleSheet("font-size: 30px;background-color: red");
              m_stop ->show();
              
              connect(m_marche,&QPushButton::clicked,m_marche,[this](){reStartGainable();});
              connect(m_appel1,&QPushButton::clicked,m_appel1,[this](){m_start ->afficheConsignes();});
              connect(m_stop,&QPushButton::clicked,m_stop,[this](){stopGainable();});
              
              baseWindow->show();
          }
          
          void MainWindow::reStartGainable()
          {
              m_start ->m_timer1 ->start();
              m_marche ->hide();
          }
          
          void MainWindow::stopGainable()
          {
              m_start ->arretGainable();
              desactiveTousRelais();
              digitalWrite (relaiEteHiver, HIGH);
              m_start ->m_window1 ->setPixmap(QPixmap("/media/ludo/D83C-C33A/file (2) (1).jpg"));
              m_start ->m_window1 ->showMaximized();
              m_marche ->show();
          }
          

          mainwindow H

          #ifndef MAINWINDOW_H
          #define MAINWINDOW_H
          
          #include <QtWidgets>
          #include "interface.h"
          
          class MainWindow : public QMainWindow
          {
              Q_OBJECT
          
          public:
              MainWindow();
              QWidget *baseWindow;
          
          private:
              Interface *m_start;
              
              QPushButton *m_marche;
              QPushButton *m_appel1;
              QPushButton *m_stop;
              
              void reStartGainable();
              void stopGainable();
          };
          #endif // MAINWINDOW_H
          
          
          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved