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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QComboBox + QSpinBox = новый компонент  (Прочитано 15302 раз)
ilyagoo
Гость
« Ответ #15 : Июнь 09, 2009, 10:21 »

да, что-то все страньше и страньше...

Код:
   QStyleOptionComboBox optCB;
   optCB.initFrom(this);
   optCB.frame = 1;
   optCB.direction = Qt::RightToLeft;
   optCB.subControls = QStyle::SC_ComboBoxArrow;
   spainter.drawComplexControl(QStyle::CC_ComboBox, optCB);


   QStyleOptionSpinBox optSB;
   optSB.initFrom(this);
   optSB.frame = 1;

   optSB.subControls =  QStyle::SC_SpinBoxUp | QStyle::SC_SpinBoxDown;
   spainter.drawComplexControl(QStyle::CC_SpinBox, optSB);

этот код рисует нужные кнопки, если наследовать от QWidget. если наследовать от QSpinBox (так хоть какие-нибудь методы не придется переписывать), кнопка spinbox'а не видна. если paintEvent пустой, все равно рисуется QSpinBox без кнопок, но область, где они должны быть, остается кликабельна. мужчины, хелп нужен Непонимающий
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #16 : Июнь 09, 2009, 10:44 »

Исходники.
class uoColorChooser;
Может поможет.
« Последнее редактирование: Июнь 09, 2009, 10:48 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
ilyagoo
Гость
« Ответ #17 : Июнь 09, 2009, 11:42 »

Исходники.
class uoColorChooser;
Может поможет.
спасибо, может и поможет. только этот компонент наследует от QFrame, и функции QComboBox и QSpinBox нужно писать самому Грустный
но это очень похоже на единственный реальный вариант. другой - это свой стиль со своими функциями рисования и пересчета координат, это гораздо сложнее, и придется устанавливать этот стиль для приложения...
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #18 : Июнь 09, 2009, 14:43 »

другой - это свой стиль со своими функциями рисования и пересчета координат, это гораздо сложнее, и придется устанавливать этот стиль для приложения...
посмотри класс uoFrameChooser там-же.
используются пересчеты координат и прочая хрень.
он простой ка мыло.
ниче там сложного нет.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
ilyagoo
Гость
« Ответ #19 : Июнь 09, 2009, 16:19 »

видел я его. там-то пересчеты простые, я говорил про свой стиль.
вроде я уже что-то нарисовал, даже кнопочки нажимаются Улыбающийся
очередная загвоздка с выводом текста и курсора. посмотрел на QLineEdit, сижу, чешу репу... что ж у них там все так наворочено Злой

в uoWidget все более или менее ясно, там просто в поле ввода рисуется цвет...

закрадывается подлая мыслишка, а не попробовать ли сделать наследника QSpinBox, вот только как влепить туда еще одну кнопку? допустим, что отлавливать нажатия на нее я смогу в eventFilter, но как заставить его отрисовывать текст с учетом этой лишней кнопки - неясно Непонимающий

есть ли у вас идеи, господа?
Записан
EhTemka
Гость
« Ответ #20 : Июнь 09, 2009, 22:00 »

Я может не понимаю сути проблемы. Чем не устраивает комбинирование уже существующих виджетов? К примеру QSpinBox + QToolButton + таблица popup.

Или тут желание возиться(разбираться) в стилях?
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #21 : Июнь 09, 2009, 22:50 »

очень похоже на выклянчивание готового решения.
если бы мне было нужно оно, я бы давно сделал. нифига там сложного нету...
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
ilyagoo
Гость
« Ответ #22 : Июнь 10, 2009, 08:24 »

очень похоже на выклянчивание готового решения.
если бы мне было нужно оно, я бы давно сделал. нифига там сложного нету...

готового решения я тут не ищу, тем более, что чаще вижу малограмотный стёб, нежели адекватные ответы Подмигивающий

Я может не понимаю сути проблемы. Чем не устраивает комбинирование уже существующих виджетов? К примеру QSpinBox + QToolButton + таблица popup.

Или тут желание возиться(разбираться) в стилях?

изначально так и было, но выглядит это убого, хотелось бы все кнопки вбить в фрейм поля ввода. со стилями почти все ясно, осталось разобраться в том, как отображает себя самый примитивный QLineEdit.
Записан
spectre71
Гость
« Ответ #23 : Июнь 10, 2009, 09:15 »

Я может не понимаю сути проблемы. Чем не устраивает комбинирование уже существующих виджетов? К примеру QSpinBox + QToolButton + таблица popup.

Или тут желание возиться(разбираться) в стилях?

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

Ну и в чем убогость? Это сделано чисто в дизайнере.
Если сделать свой Layout, все это правильно связать, то и не надо замарачиваться
« Последнее редактирование: Июнь 10, 2009, 09:22 от spectre71 » Записан
ilyagoo
Гость
« Ответ #24 : Июнь 10, 2009, 21:40 »

Ну и в чем убогость? Это сделано чисто в дизайнере.
Если сделать свой Layout, все это правильно связать, то и не надо замарачиваться

видимо убогость в данном случае в моих руках Улыбающийся
я с дизайнером не очень дружу... буду благодарен за пример ui-шки и, если он потребен, за кусочек кода
Записан
spectre71
Гость
« Ответ #25 : Июнь 12, 2009, 08:36 »

Смотри вложение.
Но учти, что:
 1) нормально работает только под Windows и WindowsXP стилями под другими троли перемудрили не убирают Frame у QComboBox (может есть способ это исправить).
 2) В примере все вбито жестко (например, "QFrame { background: white }"  и некоторые размеры).
     А Надо делать динамически на соответствующие события (смена стиля, палитры, ...)
 3) Возможно будет необходимость сделать свой Layout, и отрисовку рамки "Frame" под некоторыми стилями (скругление углов, фокус,...)

Но функциональность QComboBox и QLineEdit переделывать нет необходимости
Записан
ilyagoo
Гость
« Ответ #26 : Июнь 14, 2009, 16:50 »

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


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