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
    #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