Russian Qt Forum
Сентябрь 30, 2024, 14:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: тупняк? QLineEdit  (Прочитано 4996 раз)
noname.pl
Гость
« : Январь 05, 2007, 05:48 »

Код:
void mainclass::on_pushButton_2_clicked()
{
this->ui.lineEdit->text() = "v 4em prikol?";
this->ui.checkBox->click();
}

чекбокс кликается, текст остается неизменным при нажатии на кнопку ... в чем прикол поясните? thx
Записан
Alexei
Гость
« Ответ #1 : Январь 05, 2007, 08:11 »

Код:
this->ui.lineEdit->setText("v 4em prikol");
Записан
noname.pl
Гость
« Ответ #2 : Январь 05, 2007, 08:23 »

спасибо, это ясно. вопрос немного переформулирую: почему _компилируется_ тот пример, который привел я, но при этом изменения не просиходит?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Январь 05, 2007, 11:06 »

а что должно было произойти? нипонял...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
noname.pl
Гость
« Ответ #4 : Январь 05, 2007, 11:29 »

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

Все честно. Тебе метод возвратил объект QString, которому ты присвоил строку "v 4em prikol?". Если бы ты обращался к паблик члену класса, тогда твой вопрос был бы уместен, а так этот метод, который ты вызвал, возвращает всего-лишь копию...
Записан
Tonal
Гость
« Ответ #6 : Январь 05, 2007, 11:58 »

text() возвращает временный объект типа QString.
У него есть перегруженный оператор присваивания из char*.
Вот он и срабатывает.
Т.е. примерно так:
Код:

QString tmp = ui.lineEdit->text();
tmp = "v 4em prikol?";
Записан
noname.pl
Гость
« Ответ #7 : Январь 05, 2007, 19:20 »

ясно, спасибо.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #8 : Январь 06, 2007, 00:45 »

надо так:
this->ui.lineEdit->setText("v 4em prikol?");
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 23.