PDA

Visualizza la versione completa : Conversione da int a string


iacoposk8
12-02-2015, 19:06
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


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


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);

shodan
12-02-2015, 19:52
Non conosco QT, ma mi stupirebbe che quel metodo accetti una std::string.
A naso potrebbe funzionare:


...
QString temp(s.c_str());
ui->label->setText(temp);
...


oppure



...
ui->label->setText(s.c_str());
...

MItaly
12-02-2015, 20:21
Pių semplicemente:


void MainWindow::on_horizontalSlider_sliderMoved(int position)
{
ui->label->setText(QString::number(position));
}

iacoposk8
12-02-2015, 21:00
Pių semplicemente:


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:D
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:)

MItaly
12-02-2015, 23:55
:D
Diciamo che usando Qt da un po' di anni certe cose ce le ho in mente. :D Tra parentesi, l'equivalente Qt del std::ostringstream č il QTextStream:


QString footer;
QTextStream s(&output);
s<<"Pagina "<<pagNum<<" di "<<totPages;

anche se spesso č molto pių comodo usare il metodo .arg() in chaining:


QString footer = QString("Pagina %1 di %2").arg(pagNum).arg(totPages);

:ciauz:

Loading