Errore di compilazione: expected primary-expression before '.' token
-
Buonasera.
Evidentemente non capisco come si usano le classi.
Ho lasciato generare al Qt Creator la banalissima MainWindow ed ho inserito alcuni widget nel form. Quindi ho aggiunto alla classe mainwindow.cpp il seguente metodo per leggere alcuni valori:float MainWindow::get_valore (int indice) { QString dato; if (indice == 1) { dato = MainWindow.ui->qt5puntata1->text(); } else { dato = MainWindow.ui->qt5puntata2->text(); } return dato.toFloat(); }
mentre nella mainwindow.h ho aggiunto la seguente difinizione
float get_valore (int indice);
Ebbene, il compilatore mi segnala un errore in entrambe le istruzioni che contengono "dato = MainWindow.ui->qt5...".
Oltretutto sembra un errore poco attinente: eccolo.
C'è un'anima buona che mi scioglie questo enigma ?
Molte grazie.
bvox -
in C++ c'e' differenza tra l'operatore di accesso (
.
) e il risolutore di "scope" (::
). il primo puo' essere usato solo da istanze della classe.MainWindow.ui
e' quindi scorretto, dovrebbe essereMainWindow::ui
. la buona notizia e' che, in realta', non c'e' bisogno di complicarsi la vita cosi' tanto visto che lo "scope" e' dedotto. ti basta rimuovereMainWindow.
completamente e lasciareui->qt5puntata1->text()
.P.S.
Se a qualcuno viene in mente una traduzione adeguata di "scope" fatemelo sapere cosi' correggo la risposta