Russian Qt Forum
Апреля 29, 2025, 11:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему обнуляются значения переменных.  (Прочитано 3123 раз)
fedotok
Гость
« : Марта 11, 2013, 22:24 »

объявлены 3 перменные

Код:
int aValue, bValue, cValue;

есть 3 слота, у каждого на вход одна из перменных, на выходе все три

Код:
 void Tab::aValueChange(int aValue)
 {
     emit signal_aValueChange(aValue, bValue, cValue);
 }

 void Tab::bValueChange(int bValue)
 {
     emit signal_bValueChange(aValue, bValue, cValue);
 }

 void Tab::cValueChange(int cValue)
 {
     emit signal_bValueChange(aValue, bValue, cValue);
 }

Почему на выходе есть значения только одной перменной (соотвественно в зависимотси от вызова слота) а две другие нули Непонимающий
Записан
Bepec
Гость
« Ответ #1 : Марта 11, 2013, 22:46 »

Потому что вы вообще нигде ничего не присваиваете Веселый
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Марта 11, 2013, 22:48 »

Потому что вы вообще нигде ничего не присваиваете Веселый
Может быть, где то в коде и есть присваивание)

fedotok, покажите подключение этих слотов

а вы не пробовали просмотреть что получают данные 3 слота в качестве параметров?
что то типа:
Код:
void Tab::aValueChange(int aValue)
 {  
      qDebug() << aValue;
     emit signal_aValueChange(aValue, bValue, cValue);
 }
Записан

fedotok
Гость
« Ответ #3 : Марта 12, 2013, 06:41 »

значения шли со слайдеров, и я думал, что они присваиваются. Ошибку понял, и в итоге избавился от кучи лишних слотов.

Код:
        connect(sliderA, SIGNAL(valueChanged(int)), this, SLOT(rrValuesHolder(int)));
        connect(sliderB, SIGNAL(valueChanged(int)), this, SLOT(rrValuesHolder(int)));
        connect(sliderC, SIGNAL(valueChanged(int)), this, SLOT(rrValuesHolder(int)));

void Tab::rrValuesHolder(int)
 {
     int a = sliderA->value();
     int b = sliderB->value();
     int c = sliderC->value();
     qDebug() << a;
     qDebug() << b;
     qDebug() << c;

 }
Записан
Bepec
Гость
« Ответ #4 : Марта 12, 2013, 06:54 »

Не совсем идеально, но 5+ Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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