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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDoubleSpinBox  (Прочитано 3516 раз)
Chester
Гость
« : Январь 11, 2010, 14:28 »

Доброе время суток!!!
Использую QDoubleSpinBox..и вот там есть такой сигнал valueChanged(double d). Этот сигнал передает новое значение...а можно как-нить узнать на сколько изменилось мое старое значение???...т.е. мне нужно не само значение,а приращение
Записан
ilot
Гость
« Ответ #1 : Январь 11, 2010, 14:47 »

Тот объект, который должен знать приращение, получает сигнал valueChanged(double) и в одной из своих переменных хранит старое значение (полученное в прошлый раз). Вычисляешь приращение, запоминаешь значение, полученное с сигналом. Подходит?
Записан
Chester
Гость
« Ответ #2 : Январь 11, 2010, 14:54 »

Просто не хочется хранить 4 переменные(ибо у меня 4 СпинБокса)
Я просто думаю...можт есть какой-нибудь стандартный метод
Записан
ilot
Гость
« Ответ #3 : Январь 11, 2010, 15:13 »

Можно еще наследовать от QDoubleSpinBox собственный класс и определить в нем новый сигнал, возвращающий приращение. Как то так:
Код:
class MyBox: public QDoubleSpinBox{
Q_OBJECT
public:
MyBox(QWidget *pwgt = 0):QDoubleSpinBox(pwgt){
//...
connect(this, SIGNAL(valueChanged(double)), SLOT(evaluteIncrement(double)));
}
//...
private slots:
void evaluteIncrement(double newValue){
//вычисляем приращение на основе старого и обновленного значений
emit valueIncrement(newValue - oldValue);
}
signals:
void valueIncrement(double);
};
Создаете необходимое кол-во экземпляров MyBox; сигнал valueIncrement соединяется с нужными объектами.
Записан
Chester
Гость
« Ответ #4 : Январь 11, 2010, 16:14 »

Спасибо!!!Так пойдет  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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