PDA

View Full Version : [C++] QT, metodo setText


-Slash
21-02-2009, 17:55
Salve ragazzi. Sto dando un occhio alle qt ma non riesco a capire perchè in una normale setText per esempio di una Label se faccio


ui->label->setText(ui->lineEdit->text())

ossia prendo il testo da una lineEdit funziona correttamente. Invece se faccio

QString s;
s = ui->lineEdit->text();
ui->label->setText(&s);

non funziona. setText in una label(ma anche in altri oggetti) prende un riferimento a QString in input e restituisce void... Perchè non va?
La stessa cosa ovviamente se utilizzo i puntatori e faccio l'allocazione dinamica di s...

EDIT: Ho capito... Va fatto

ui->label->setText(s);

Non capisco perchè nelle api c'è scritto che prende QString& :confused:

cionci
22-02-2009, 09:14
QString & è appunto un riferimento, non un puntatore. Di conseguenza questo codice è errato:

QString s;
s = ui->lineEdit->text();
ui->label->setText(&s);
&s ritorna un QString *. Nei casi in cui hai un riferimento non devi usare alcun operatore. Passi semplicemente l'istanza dell'oggetto.

-Slash
22-02-2009, 12:07
QString & è appunto un riferimento, non un puntatore. Di conseguenza questo codice è errato:

QString s;
s = ui->lineEdit->text();
ui->label->setText(&s);
&s ritorna un QString *. Nei casi in cui hai un riferimento non devi usare alcun operatore. Passi semplicemente l'istanza dell'oggetto.
Ho capito. Grazie :D

Era da un 7/8 mesi che non programmavo ed inevitabilmente qualcosa mi è sfuggita di mente :D