Название: Виджеты KDE Отправлено: andi от Январь 23, 2007, 07:51 Незнаю уместно ли здесь обсуждение виджетов созданных ребятами из КДЕ, тем не менее попробую.
Хочу использовать KDoubleSpinBox. При старте программы вылетает SEGSEGV Смотрю стек в отладчике. Затык происходит в конструкторе виджета. Вложенность такая: Устанавливаем setMaxValue() потом идут всякие проверки на диапазон в родительских методах На самом верху стоит функция KLocale::doFormatInit() Сегофолтится именно в ней. Теперь сам вопрос, не уж то ребята (кде-ешные) до сих пор не научились нормально цифры по формату рисовать? Есть ли способ безболезненного обхода? Или мож у кого завалялся нормальный спин-бокс с вещественным value? добавлено спустя 19 минут: Пардон, забыл добавить что Qt3.3.6 КДЕ 3.4.2 Название: Виджеты KDE Отправлено: Admin от Январь 23, 2007, 14:39 а зачем использовать KDE элементы?
переносимость нарушается а так - если у ребят работает в KDE и у тебя должно Название: Виджеты KDE Отправлено: andi от Январь 24, 2007, 05:26 Возможно.
Тогда, если несложно, в дезигнере кинь на форму вышеуказанный виджет. Собери его в приложение и запусти. Мне просто интересно должен ли он работать "из упаковки" или нужно долго и упорно его затачивать. Название: Виджеты KDE Отправлено: Admin от Январь 24, 2007, 12:01 к сожалению я kde компоненты не пользую
у меня их в Debian нет :( Название: Виджеты KDE Отправлено: andi от Январь 24, 2007, 12:27 свезло так свезло!
Название: Виджеты KDE Отправлено: Admin от Январь 24, 2007, 13:51 я как то раз пытался сделать spin c float величиной
в конце экспериментов понял что этого точно мне не нада :) такого элемента Название: Виджеты KDE Отправлено: andi от Январь 25, 2007, 12:23 Вобщем я взял исходники QSpinBox и QSpinWidget и без всякого QRangeControl переправил там все int на double и вроде как заработало (но только на домашнем компе. slack11, KDE3.5.4, qt3.3.6). Принес на работу (slack10.2, KDE3.4.2, qt3.3.4) пересобрал, выскочил SIGSEGV
в обработчике void SpinWidget::paintEvent( QPaintEvent * ) в вызове: style().drawComplexControl( control, &p, this,fr, cg,flags, (uint)QStyle::SC_All, active ); Судя по сообщения отладчика, при отрисовке кнопок, он пытается узнать, что рисовать на кнопках (стрелки или +-) и лезет узнавать в QSpinWidget. Вот такая вот фигня добавлено спустя 3 часа 26 минут: В продолжении. Дабы не ковырять Qt на уровне ее ядра, заменил drawComplexControl на свой вызов, в котором сам жестко рисую бордюр и стрелки. Анимации нажатий и наезда мышкой не стало (в сравнении с исходным QSpinBox). Зато выглядит как спинбокс и работает соответственно. Тему можно считать закрытой |