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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Как связать переменную с спинбоксом !  (Прочитано 16045 раз)
Sergey
Гость
« Ответ #15 : Август 17, 2010, 15:07 »



2) Если я правильно понял, требуется, чтобы числа отображались на каком-то фоне. Тогда можно так:
Код:
  QPalette pal = ui->doubleSpinBox->palette(); //создание палитры копированием со спин бокса
 QPixmap pix(":/image/pix.png"); //открытие изображения, в данном случае из файла ресурсов, но можешь с диска
 pal.setBrush(QPalette::Base,QBrush(pix)); //установка роли в качестве роли Base изображения (роль Background почему-то не работает)
 ui->doubleSpinBox->setPalette(pal);//установка спин боксу измененной палитры

[/quote]ну не обязательно только цифры весь спин бокс может наход на каком то рисунке .... ну я думаю ваш кусок кода можно использовать и для всего спин бокса ... правильно ? ))
Записан
Anarion
Гость
« Ответ #16 : Август 17, 2010, 15:32 »

Будет закрашиваться все поле для ввода цифр, т.е. весь эдит, а не только под цифрами.
По такому принципу можешь установить палитру для виджета, на котором находится спинбокс. На счет прозрачности, правда, не знаю)
Записан
Sergey
Гость
« Ответ #17 : Август 18, 2010, 11:05 »

Возник вопрос с шагом мне надо сделать чтоб пользователь , мог менять и единицы  и десятки .... а так я могу выставить только один шаг и всё ) не знаете как это поменять !? )
Записан
Anarion
Гость
« Ответ #18 : Август 18, 2010, 11:29 »

Первое, что приходит в голову:
1) создай QLineEdit, вставь туда QDoubleValidator и используй это поле для того, чтобы пользователь сам мог ввести шаг. Потом либо сделай кнопку "Применить", либо по завершению редактирования лайн эдита устанавливай введенное значение в качестве шага для спинбокса.
2) создай QComboBox и туда забей в строчном формате числа, например:
Код:
...
1
0.1
0.01
...
По сигналу типа currentItemChanged также устанавливай выбранное значение в качестве шага для спинбокска. Только надо будет либо преобразовать строку в double, либо делай список даблов и выбирай оттуда значение по текущему индексу в комбобоксе.
Записан
Sergey
Гость
« Ответ #19 : Август 19, 2010, 12:47 »

а можно сделать чтоб спинбокс находилс на QLabel ?
Записан
Anarion
Гость
« Ответ #20 : Август 19, 2010, 13:50 »

В принципе можно методом
Код:
QDoubleSpinBox::setParent(QWidget*/*тут укажи свой QLabel*/)
, но получишь проблемы с лайаутами и размерами. А с какой целью это нужно, разрешите полюбопытствовать?)
Записан
Sergey
Гость
« Ответ #21 : Август 19, 2010, 14:03 »

В принципе можно методом
Код:
QDoubleSpinBox::setParent(QWidget*/*тут укажи свой QLabel*/)
, но получишь проблемы с лайаутами и размерами. А с какой целью это нужно, разрешите полюбопытствовать?)
  Мне надо чтобы было видно когда кнопка активирована, а когда нет. Я добавил рисунок на  QLabel , а потом на него хочу спинбокс .  И ещё это будет довольно эстетично .Если есть ещё вопросы пишите ....рад общению ) тем более вы мне оч помогли ..и если не надоел то будете помогать )
Записан
Anarion
Гость
« Ответ #22 : Август 19, 2010, 14:20 »

Если хочешь отображать сам спинбокс именно на каком-то фоне, лучше(по-моему) использовать не QLabel, а QFrame. В него спокойно добавляется лайаут и все красиво выравнивается. Фон туда ставится тем же способом, но пара отличий: надо установить для фрейма setAutoFillBackground(true), и указывать роль Background в методе pal.setBrush(QPalette::Background,QBrush(pix));

Идею с кнопкой воображение не представляет Грустный Не понял, что хочешь)
P.S.: На счет QFrame:
1) Если делаешь в дизайнере, то
1.1 Добавляешь куда надо QFrame
1.2 Перетаскиваешь в него QDoubleSpinBox
1.3 Тыкаешь QFrame и устанавливаешь там нужный лайаут.

2) Если делаешь вручную, то нечто типа:
Код
C++ (Qt)
QFrame *frame = new QFrame(this);
frame->setLayout(new QHBoxLayout());
frame->layout()->addWidget(doubleSpinBox);
« Последнее редактирование: Август 24, 2010, 23:01 от Anarion » Записан
Sergey
Гость
« Ответ #23 : Август 19, 2010, 14:29 »

спасибо ... может вы напишите в личные сообщении вашу аську .... и я покажу ващему воображению что я хочу! )
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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