Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    Conversione da int a string

    ciao a tutti! premetto di essere scarso in c++.
    Sto utilizzando qt creator come ide perchè mi facilita la creazione e gestione di interfacce grafiche.
    ho uno slider e un label, vorrei scrivere dentro il label il valore dello slider.
    la gestione dell'evento funziona ma credo di aver problemi con la conversione da intero a striga
    codice:
    void MainWindow::on_horizontalSlider_sliderMoved(int position)
    {
        std::string s;
        std::stringstream out;
        out << position;
        s = out.str();
        ui->label->setText(s);
    }
    ma mi genera questo errore:
    no matching function for call to 'QLabel::setText(std::string&)'
    ui->label->setText(s);

    mentre se scrivessi semplicemente
    codice:
    void MainWindow::on_horizontalSlider_sliderMoved(int position)
    {
        ui->label->setText(position);
    }
    ottengo:
    error: invalid user-defined conversion from 'int' to 'const QString&' [-fpermissive]
    ui->label->setText(position);

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Non conosco QT, ma mi stupirebbe che quel metodo accetti una std::string.
    A naso potrebbe funzionare:
    codice:
    ... 
    QString temp(s.c_str());
    ui->label->setText(temp);
    ...
    oppure

    codice:
    ... 
    ui->label->setText(s.c_str());
    ...
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Più semplicemente:
    codice:
     
    void MainWindow::on_horizontalSlider_sliderMoved(int position)
    {
        ui->label->setText(QString::number(position));
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Più semplicemente:
    codice:
     
    void MainWindow::on_horizontalSlider_sliderMoved(int position)
    {
        ui->label->setText(QString::number(position));
    }
    me la metti giù così? in modo così avvilente?
    scrivi almeno: è stato un casino trovare la soluzione ma questo dovrebbe andare
    non so perchè mi sono incapponito a googlare una soluzione che fosse in c quando sto usando qt per semplificarmi la vita
    grazie mille a tutti

  5. #5

    Diciamo che usando Qt da un po' di anni certe cose ce le ho in mente. Tra parentesi, l'equivalente Qt del std:stringstream è il QTextStream:
    codice:
    QString footer;
    QTextStream s(&output);
    s<<"Pagina "<<pagNum<<" di "<<totPages;
    anche se spesso è molto più comodo usare il metodo .arg() in chaining:
    codice:
    QString footer = QString("Pagina %1 di %2").arg(pagNum).arg(totPages);
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.