Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Valeriy от Сентябрь 19, 2008, 19:55



Название: Спинбокс со слайдером.
Отправлено: Valeriy от Сентябрь 19, 2008, 19:55
Не подскажете, как проще сделать вот такое (что-то вроде спинбокса со слайдером). При нажатии на значок выскакивает слайдер, которым можно регулировать значение.

Спасибо за ответы.


Название: Re: Спинбокс со слайдером.
Отправлено: Karl-Philipp от Сентябрь 19, 2008, 21:16
По идее нужно отлавливать сигнал "нажатия на значок", только непонятно про какой значок вы пишете ;) и показывать слайдер в нужных координатах. Координаты можно вычислить из местоположения виджета (спинбокса)

нечто интересное задумали:
в задании у вас написано про спинбокс и как связать его со слайдером, а на рисунке - комбобокс. Непонятно :)


Название: Re: Спинбокс со слайдером.
Отправлено: Valeriy от Сентябрь 19, 2008, 21:21
Я говорил про спинбокс, имея в виду область значений - целые числа. В принципе, я так и думал делать, как Вы предлагаете. Просто пока ищу наиболее оптимальный способ.


Название: Re: Спинбокс со слайдером.
Отправлено: EhTemka от Сентябрь 20, 2008, 00:01
А как то такое делал, неахота в код лесть...

Тебе нужно сделать из слайдера некий popupWidget. А в спинбоксе в каком-нибуть mouseReleaseEvent(QMouseEvent *event) передавать  popupWidgetу координаты (event->globalPos()) на основе каторых рассчитываешь положение и делать его ехес. 


Название: Re: Спинбокс со слайдером.
Отправлено: Примерный ученик от Сентябрь 24, 2008, 22:11
А не проще связать компоненты, используя  метод

setBady

и приконнектить их друг к другу ???


Название: Re: Спинбокс со слайдером.
Отправлено: EhTemka от Сентябрь 25, 2008, 11:16
Ты наверно имел ввиду setBuddy, который у класса QLabel. Если да, то тут это как-то не к месту.
Может просто это другой метод. У меня в Qt 4.2.3 такого нет...


Название: Re: Спинбокс со слайдером.
Отправлено: Примерный ученик от Сентябрь 25, 2008, 12:48
Да, его... Но ведь подобное можно по аналогии добавить и в разрабатываемые классы ;D