E' possibile lanciare il refresh del form ui ?
-
Buonasera.
Strana richiesta, lo so, ma mi succede una cosa strana. Ho un form con varie colonne colorate che vengono popolate da un modulo in QThread. Succede stranamente che dopo un certo numero di righi visualizzati, il lavoro non si ferma, ma la visualizzazione rimane congelata. Il numero di righi visualizzati è variabile: può succedere dopo 5 righi, come dopo 15 o 40. Ho quindi visualizzato con cout il contenuto del campo che dovrebbe essere visualizzato e contiene tutti i valori che mi sarei aspettato, ma a video non ci sono. La sola cosa che mi viene da pensare è che l'esposizione a video si arresta per qualche motivo e da quel momento in poi non aggiorna più i campi visualizzati. Cosa mi consigliate di fare ? -
Quando si genera il file ui con qmake viene scritto un file ui_nomepinoxx.h .. la dentro esiste una funzione di ricarica della lingua... un tipo di refresh il quale scatta quando si cambia la lingua.... e quello lo richiami dalla tua app principale... on una slot appropriata...
-
Grazie Patrik08, avevo visto che c'è un metodo retraslateUi, ho provato a metterlo dopo gli aggiornamenti delle varie colonne, ma non dà segno di vita. Provo ad inviarvi il link del video che ho realizzato per la prova. In questo caso la visualizzazione si è bloccata dopo il 13° tiro (ma ripeto, questa è una cosa molto variabile). Ecco il link: https://drive.google.com/open?id=0B_ZQRwpjdT8jX2gwWEthTlBPaVk
ed ecco il contenuto del logout della stessa esecuzione in cui si vede che non c'è nessuna variazione dopo il 13° tiro.Starting /home/bvox/qt5/build-HRnet04-Desktop_Qt_5_9_1_GCC_64bit-Debug/HRnet04... QApplication: invalid style override passed, ignoring it. /home/bvox/qt5/build-HRnet04-Desktop_Qt_5_9_1_GCC_64bit-Debug HRnet_0490. Creazione. HRnet_0100. Qui carica il thread HRnet_0100. Qui gioca: /home/bvox/qt5/HRnet04/numeripng/williamhill/contorno.png 65x12 HRnet_0100. Carica parametri HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211837143,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211837396,000000 HRnet_0500. 15 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211839915,000000 HRnet_0500. Fatto loop per 1,000000 volte. HRnet_0500. Dopo: 1502211840415,000000 HRnet_0500. 10 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211841436,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211841687,000000 HRnet_0500. 36 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211842933,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211843183,000000 HRnet_0500. 29 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211844424,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211844676,000000 HRnet_0500. 34 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211845929,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211846181,000000 HRnet_0500. 6 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211847427,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211847677,000000 HRnet_0500. 15 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211848937,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211849187,000000 HRnet_0500. 15 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211850424,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211850675,000000 HRnet_0500. 14 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211851931,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211852184,000000 HRnet_0500. 6 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211853423,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211853677,000000 HRnet_0500. 22 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 11 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211854931,000000 HRnet_0500. Fatto loop per 1,000000 volte. HRnet_0500. Dopo: 1502211855438,000000 HRnet_0500. 0 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 12 11 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211856469,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211856719,000000 HRnet_0500. 30 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 13 12 11 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211857959,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211858211,000000 HRnet_0500. 9 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 14 13 12 11 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211859456,000000 HRnet_0500. Fatto loop per 1,000000 volte. HRnet_0500. Dopo: 1502211859958,000000 HRnet_0500. 5 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211860967,000000 HRnet_0500. Fatto loop per 1,000000 volte. HRnet_0500. Dopo: 1502211861467,000000 HRnet_0500. 12 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17 HRnet_0500. Passa da azioni sul Casinò HRnet_0500. Prima: 1502211862476,000000 HRnet_0500. Fatto loop per 0,000000 volte. HRnet_0500. Dopo: 1502211862726,000000 HRnet_0100. Qui gioca: /home/bvox/qt5/HRnet04/numeripng/williamhill/contorno.png 65x12 HRnet_0500. 10 HRnet_0500. Passa da Valorizza elementi HRnet_0110. Passa da richiamo visualizza 2 HRnet_0110. ValorizzaColonna 0 Elenco: 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 HRnet_0110. ValorizzaColonna 1 HRnet_0110. ValorizzaColonna 2 HRnet_0110. ValorizzaColonna 3 HRnet_0110. ValorizzaColonna 5 HRnet_0110. ValorizzaColonna 6 HRnet_0110. ValorizzaColonna 8 HRnet_0110. ValorizzaColonna 9 HRnet_0110. ValorizzaColonna 11 HRnet_0110. ValorizzaColonna 12 HRnet_0110. ValorizzaColonna 13 HRnet_0110. ValorizzaColonna 15 HRnet_0110. ValorizzaColonna 16 HRnet_0110. ValorizzaColonna 17
-
su window ... proprio non mi piacee sviluppare ... di regola scrivo tutto su linux o mac poi alla fine entro su window ...
la chiave potrebbe essere qApp->processEvents(); http://doc.qt.io/qt-5/qcoreapplication.html#processEvents
se disponi di una propria classe madre di QApplication sei a posto li dentro puoi controllare tutti gli eventi anche dei child ...
comodo avere quella subclasse ancora prima di QMainWindow ... se non riesci a trovare il bacco puoi provare a vedere con gdb https://www.gnu.org/software/gdb/ dove si rallentano i processi... capisci senza vedere i codici non posso aiutarti molto... posso solo andare a tentativi... delle esperienze fatte ... che qt è duro in questioni di eventi .. vuole la massima precisione ... lavori con qt versione come?#define rdoc (static_cast<RDoc*>(QCoreApplication::instance())) class RDoc : public QApplication { Q_OBJECT public: RDoc(int &argc, char **argv ); bool event (QEvent *event); //// void openDiskFile(); signals: void eventLog(QString); void signalFileOpen(QString); void readtext(); void sendstatus(QString); void insert_text(QString); public slots: void speechtext(QString); void openFile(QString); void loginternal(QString); void openDiskFile(); void prepare_to_close(); private: DocumentHandler *docs; MainWin *win; QMdiArea *workspace; QTextEdit *textEdit; QLabel *StatusApp; //// set text here QRect screens; };
-
Sono su linux. Vecchio programmatore in ambiente bancario con Assembler 360/370, Pl/1, Cobol, poi VB6, un pochino di VB10 ed ora che sono in pensione ed ho abbandonato Microsoft sto cercando di capire qualcosa su classi e c++ con Qt, di cui avevo letto una recensione interessante. Sono alle prime armi e non ho la cultura della programmazione ad oggetti con un uso spinto delle classi, retaggi storici di quando si lavorava con 13 registri macchina. Se mi dici come fare per inviarti il progetto zippato non ho nessuna remora. Grazie comunque, domani tenterò di leggere (ah il mio inglese quanto è scarso) quell'articolo che hai postato. Magari in attesa che anche VRonin mi dica la sua. Buonanotte.
-
Forse ho risolto il problema.
Avevo realizzato il programma in modo che la routine in thread richiamava direttamente la routine per aggiornare i campi sul form. L'altro giorno VRonin mi ha spiegato che quella tecnica è da evitare e così ho fatto la modifica per emettere un segnale (anziché richiamare la routine) nel modulo thread ed ho spostato la routina da "private" a "private slots". Ah dimenticavo, ho anche aggiunto il G_SIGNAL necessario nel programma che avvia il thread.
Grazie a tutti. Senza di voi sarei perso.