Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. QEventPress... difficoltà di utilizzo

QEventPress... difficoltà di utilizzo

Scheduled Pinned Locked Moved Unsolved Italian
28 Posts 2 Posters 11.4k 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.
  • B Offline
    B Offline
    bvox123
    wrote on last edited by
    #17

    L'ho fatto, ma rimane il secondo errore detto prima: "virt-specifiers in ..."

    1 Reply Last reply
    0
    • VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by
      #18

      hai lasciato virtual nel .cpp? se si toglilo. deve essere solo nel .h

      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
      ~Napoleon Bonaparte

      On a crusade to banish setIndexWidget() from the holy land of Qt

      1 Reply Last reply
      0
      • B Offline
        B Offline
        bvox123
        wrote on last edited by
        #19

        Sì sì, ho fatto così e mi viene quell'errore. Per tranquillità riposto le due parti:

        protected:
            Ui::HRnet_0100_QuadroComandi *ui;
            virtual void keyPressEvent(QKeyEvent *);
        
        void HRnet_0100_QuadroComandi::keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE{
               if (event->key() >= Qt::Key_F10 && event->key() <= Qt::Key_F12){
                   faseesecuzione = !faseesecuzione;
                   if(faseesecuzione)
                       m_risultatoContatore->setFuture(QtConcurrent::run(&HRnet_0100_QuadroComandi::contaCicli,&faseesecuzione));
                   return;
               }
               return QWidget::keyPressEvent(event);
           }
        

        e l'errore:
        0_1504261268713_Schermata del 2017-09-01 12-20-38.png

        1 Reply Last reply
        0
        • VRoninV Offline
          VRoninV Offline
          VRonin
          wrote on last edited by
          #20

          scusa, sono cieco. anche Q_DECL_OVERRIDE va nel .h non nel .cpp

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          1 Reply Last reply
          0
          • B Offline
            B Offline
            bvox123
            wrote on last edited by
            #21

            WOW ha complilato... Ora vediamo se funziona. In ogni caso: grazie, grazie, grazie.

            1 Reply Last reply
            0
            • B Offline
              B Offline
              bvox123
              wrote on last edited by
              #22

              Non, non riesco a bloccare il loop. Proverò a mettere qualche cout per vedere cos'è che non va.

              1 Reply Last reply
              0
              • B Offline
                B Offline
                bvox123
                wrote on last edited by
                #23

                Nella routine che fa il loop infinito ho inserito uno sleep di 5 secondi per avere il tempo di fare click sul form e pigiare un tasto funzione. Inoltre ho messo un cout all'interno della routine loop. Ecco le routines:

                        while (faseesecuzione != 0) {
                //            QApplication::processEvents();
                            AzioniSulCasino();
                            attesa.msleep(5000);
                        }
                
                void HRnet_0100_QuadroComandi::keyPressEvent(QKeyEvent *event) {
                       if (event->key() >= Qt::Key_F1 && event->key() <= Qt::Key_F12){
                           faseesecuzione = !faseesecuzione;
                           cout << "KeyPress intercettato. faseesecuzione = " << faseesecuzione << endl;
                           if(faseesecuzione)
                               m_risultatoContatore->setFuture(QtConcurrent::run(&HRnet_0100_QuadroComandi::contaCicli,&faseesecuzione));
                           return;
                       }
                       return QWidget::keyPressEvent(event);
                   }
                

                Provato più volte a ridare il focus alla schermata e pigiare un tasto funzione, ma niente... ho dovuto chiudere il programma col click sulla X di chiusura (durante l'attesa dei 5 secondi). Nessun messaggio sul logout, quindi non entra nella routine. L'attesa è necessaria perché durante l'esecuzione normale il mouse viene spostato dal programma.

                VRoninV 1 Reply Last reply
                0
                • B bvox123

                  Nella routine che fa il loop infinito ho inserito uno sleep di 5 secondi per avere il tempo di fare click sul form e pigiare un tasto funzione. Inoltre ho messo un cout all'interno della routine loop. Ecco le routines:

                          while (faseesecuzione != 0) {
                  //            QApplication::processEvents();
                              AzioniSulCasino();
                              attesa.msleep(5000);
                          }
                  
                  void HRnet_0100_QuadroComandi::keyPressEvent(QKeyEvent *event) {
                         if (event->key() >= Qt::Key_F1 && event->key() <= Qt::Key_F12){
                             faseesecuzione = !faseesecuzione;
                             cout << "KeyPress intercettato. faseesecuzione = " << faseesecuzione << endl;
                             if(faseesecuzione)
                                 m_risultatoContatore->setFuture(QtConcurrent::run(&HRnet_0100_QuadroComandi::contaCicli,&faseesecuzione));
                             return;
                         }
                         return QWidget::keyPressEvent(event);
                     }
                  

                  Provato più volte a ridare il focus alla schermata e pigiare un tasto funzione, ma niente... ho dovuto chiudere il programma col click sulla X di chiusura (durante l'attesa dei 5 secondi). Nessun messaggio sul logout, quindi non entra nella routine. L'attesa è necessaria perché durante l'esecuzione normale il mouse viene spostato dal programma.

                  VRoninV Offline
                  VRoninV Offline
                  VRonin
                  wrote on last edited by
                  #24

                  @bvox123 said in QEventPress... difficoltà di utilizzo:

                  while (faseesecuzione != 0) {
                  // QApplication::processEvents();
                  AzioniSulCasino();
                  attesa.msleep(5000);
                  }

                  Dove sarebbe questo loop?

                  "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                  ~Napoleon Bonaparte

                  On a crusade to banish setIndexWidget() from the holy land of Qt

                  1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    bvox123
                    wrote on last edited by
                    #25

                    Quando pigio un pulsante metto a 1 la variabile faseesecuzione e resterà così finché non viene intercettata la pressione di un tasto funzione e lo riporta a zero. Forse qui c'è un errore, perché "non 1" credo che divenga -1 e non zero, comunque nella routine del keypressevent non è mai entrato.

                    1 Reply Last reply
                    0
                    • VRoninV Offline
                      VRoninV Offline
                      VRonin
                      wrote on last edited by
                      #26

                      Intendo in che funzione e'? HRnet_0100_QuadroComandi::contaCicli?

                      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                      ~Napoleon Bonaparte

                      On a crusade to banish setIndexWidget() from the holy land of Qt

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        bvox123
                        wrote on last edited by
                        #27

                        No, non è in contacicli. Dovrei spostarla lì ? Ma keypressevent non dovrebbe essere invocata comunque ?

                        1 Reply Last reply
                        0
                        • B Offline
                          B Offline
                          bvox123
                          wrote on last edited by
                          #28

                          Ciao VRonin. Mi piacerebbe capire come sistemare le cose affinché funzioni il keypressevent, ma se non è semplice trovarne l'inghippo lascia stare perché ho pensato ad un'altra soluzione alternativa al tasto funzione. A programma testo se è stato spostato il mouse, se no eseguo il loop, se sì arresto l'iterazione.

                          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