Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: noname.pl от Январь 05, 2007, 05:48



Название: тупняк? QLineEdit
Отправлено: noname.pl от Январь 05, 2007, 05:48
Код:
void mainclass::on_pushButton_2_clicked()
{
this->ui.lineEdit->text() = "v 4em prikol?";
this->ui.checkBox->click();
}

чекбокс кликается, текст остается неизменным при нажатии на кнопку ... в чем прикол поясните? thx


Название: тупняк? QLineEdit
Отправлено: Alexei от Январь 05, 2007, 08:11
Код:
this->ui.lineEdit->setText("v 4em prikol");


Название: тупняк? QLineEdit
Отправлено: noname.pl от Январь 05, 2007, 08:23
спасибо, это ясно. вопрос немного переформулирую: почему _компилируется_ тот пример, который привел я, но при этом изменения не просиходит?


Название: тупняк? QLineEdit
Отправлено: Racheengel от Январь 05, 2007, 11:06
а что должно было произойти? нипонял...


Название: тупняк? QLineEdit
Отправлено: noname.pl от Январь 05, 2007, 11:29
в поле lineEdit должен был появиться текст "v 4em prikol?" после нажатия на кнопку. если я вставляю свой кусок кода (приведенный в первом посте), то пример компилируется, выполняется, но изменения не происходят. вопрос: ПОЧЕМУ компилируется прмер но при это НИЧЕГО НЕ ПРОИСХОДИТ? если я некорректно обращаюсь к методу класса - можно было бы сгенерировать ошибку, а так ни то ни сё ... вот в этом и заключается вопрос.


Название: тупняк? QLineEdit
Отправлено: bigirbis от Январь 05, 2007, 11:46
Все честно. Тебе метод возвратил объект QString, которому ты присвоил строку "v 4em prikol?". Если бы ты обращался к паблик члену класса, тогда твой вопрос был бы уместен, а так этот метод, который ты вызвал, возвращает всего-лишь копию...


Название: тупняк? QLineEdit
Отправлено: Tonal от Январь 05, 2007, 11:58
text() возвращает временный объект типа QString.
У него есть перегруженный оператор присваивания из char*.
Вот он и срабатывает.
Т.е. примерно так:
Код:

QString tmp = ui.lineEdit->text();
tmp = "v 4em prikol?";


Название: тупняк? QLineEdit
Отправлено: noname.pl от Январь 05, 2007, 19:20
ясно, спасибо.


Название: тупняк? QLineEdit
Отправлено: Racheengel от Январь 06, 2007, 00:45
надо так:
this->ui.lineEdit->setText("v 4em prikol?");