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.
  • 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