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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QSpinBox  (Прочитано 9549 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« : Декабрь 05, 2014, 12:08 »

Скажите ,  а можно настроить объект класса QSpinBox
чтобы там значения отображались в hex-формате?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 05, 2014, 12:22 »

hex - это ты 16 ричку назвал? Тогда setDisplayIntegerBase в 5 Кьюте. В 4 можно получить lineEdit() и с ним поработать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #2 : Декабрь 05, 2014, 12:44 »

да только setLineEdit и LineEdit protected в QAbstractSpinBox

так просто и нельзя использовать
Код
C++ (Qt)
ui->spinBox->lineEdit();
 
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Декабрь 05, 2014, 12:46 »

Попробуй отнаследоваться и реализовать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #4 : Декабрь 05, 2014, 12:50 »

Попробуй отнаследоваться и реализовать.

отнаследоваться от QAbstractSpinBox?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Декабрь 05, 2014, 12:55 »

От QSpinBox.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #6 : Декабрь 05, 2014, 14:30 »

Сделал
Код
C++ (Qt)
 
SpinBox::SpinBox(QWidget*parent):
QSpinBox(parent)
{
 connect(this,SIGNAL(valueChange(int)),this,SLOT(setValueHex(int)));
}
 
void SpinBox::setValueHex(int value)
{
QLineEdit *le = lineEdit();
le->setText("0xFF");
}
 

жму на одну из кнопок для изменения значения
получается что меняется число и выводится 0xFF,
а после  при переходе на другой элемент 0xFF опять выводится число.

почему 0xFF не остается?

Надо какой-то Event перекрыть?


« Последнее редактирование: Декабрь 05, 2014, 14:33 от demaker » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Декабрь 05, 2014, 14:33 »

Лови у лайнэдита текст ченджед.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #8 : Декабрь 05, 2014, 14:48 »

Ловлю

Код
C++ (Qt)
SpinBox::SpinBox(QWidget*parent):
QSpinBox(parent)
{
 le = lineEdit();
 connect(le,SIGNAL(textChange(QString)),this,SLOT(setValueHex(QString)));
 connect(this,SIGNAL(valueChange(int)),this,SLOT(setValueHex1(int)));
 
}
 
void SpinBox::setValueHex(QString value)
{
QLineEdit *le = lineEdit();
le->setText("0xFF");
}
 
void SpinBox::setValueHex1(int value)
{
QLineEdit *le = lineEdit();
le->setText("0xFF");
}
 
 
 

или не ловлю???

Но при переходе на другой виджет 0xFF меняется на цифру
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Декабрь 05, 2014, 14:58 »

Даже хз, надо самому копаться, а времени нет. Можно еще наследника лайнэдита сделать и установить его для спинбокса, а в нем уже полученное значение отображать как надо. Но что-то у меня такое ощущение, что можно это проще сделать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #10 : Декабрь 05, 2014, 15:01 »

Сейчас попробую сделать.
Спасибо
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #11 : Декабрь 05, 2014, 15:08 »

Мля, чуйства не подвели:
Код:
virtual QString 	textFromValue ( int value ) const
virtual int valueFromText ( const QString & text ) const
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #12 : Декабрь 05, 2014, 15:55 »

Спсб

сделал вот так:

Код
C++ (Qt)
QString MySpinBox::textFromValue(int val) const{
QString str = QVariant(val).toString();
if(val<16){
  return "0x0" + str.number(val,16);
}
return "0x" + str.number(val,16);
}
 
int SpinBox::valueFromText(const QString &text) const {
return text.toInt();
}
 
 

Только к сожалению в текстовом формате нельзя вводить буквенные символы.
« Последнее редактирование: Декабрь 05, 2014, 16:31 от demaker » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #13 : Декабрь 05, 2014, 15:58 »

Хрень. Улыбающийся Юзай QString::arg, там можно указать и систему счисления и заполнение нулями.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Vamireh
Гость
« Ответ #14 : Декабрь 07, 2014, 12:47 »

У Бланшета в книге был именно такой пример.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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