Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. Errore di compilazione: expected primary-expression before '.' token

Errore di compilazione: expected primary-expression before '.' token

Scheduled Pinned Locked Moved Solved Italian
4 Posts 2 Posters 8.1k 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
    #1

    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.
    0_1500391597475_Schermata del 2017-07-18 17-26-11.png
    C'è un'anima buona che mi scioglie questo enigma ?
    Molte grazie.
    bvox

    1 Reply Last reply
    0
    • VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by
      #2

      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 essere MainWindow::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 rimuovere MainWindow. completamente e lasciare ui->qt5puntata1->text().

      P.S.
      Se a qualcuno viene in mente una traduzione adeguata di "scope" fatemelo sapere cosi' correggo la risposta

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

        Farò tesoro di questa risposta, ma ancora non va. Corretto quell'errore ne sono scaturiti altri che tenterò di comprendere da solo.
        Moltissime grazie.
        bvox

        1 Reply Last reply
        0
        • B Offline
          B Offline
          bvox123
          wrote on last edited by
          #4

          WOW funziona !!!
          Grazie VRonin.

          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