QEventPress... difficoltà di utilizzo
-
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.
-
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.
-
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.