Название: От кого наследоваться:QWidget или QSpinBox? Отправлено: AAXEE от Февраль 14, 2009, 21:35 Нужен обычный QSpinBox, но вместо стрелочек по умолчанию необходимы стрелочки по бокам от поля для ввода.
Отключить стрелочки по умолчанию легко. У QAbstractSpinBox есть такое свойство. 1.А вот как добавить свои стрелочки, если унаследоваться от QSpinBox? 2.Если же наследоваться от QWidget и в нем расположить 2 кнопки и QSpinBox, непонятно как сохранить интерфейс QSpinBox полностью. Если только вручную скопировать все методы QSpinBoxa в мой класс. То есть что то такое: MySpinBox::anyFunc( .... ){ this->spinBox->anyFunc( ... ) } ; (this для наглядности). Мне кажется, что делать так не правильно, и должен быть более гуманный способ. Итак, от кого наследоваться и, если можно, примерный ход решения. Спасибо! Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: lit-uriy от Февраль 14, 2009, 22:01 в первом случае стрелки (кнопки) можно расположить по краям поля редактирования, в оригинале они с одной стороны, но внутри поля.
Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: AAXEE от Февраль 14, 2009, 22:24 Ну я это в своем первом предложении перового поста написал. Вопрос как засунуть туда кнопку?
Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: AAXEE от Февраль 15, 2009, 11:07 Странно, никто не отвечает. Это потому что слишком глупый вопрос или наоборот?
Ведь, действительно, непонятно как расширить готовый виджет дополнительными деталями-виджетами. Получить доступ к лэйауту родительского класса невозможно. А если выбрать другой путь и в свой виджет встраивать нужный виджет, непонятно как весь интерфейс нужного виджета сохранить. Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: ритт от Февраль 15, 2009, 17:23 посмотри на LineEdit из SearchLineEdit в "доп.компонентах" - один из вриантов встраивания виджетов в чужеродные виджеты с сохранением интерфейса.
Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: pastor от Февраль 15, 2009, 18:16 Получить доступ к лэйауту родительского класса невозможно. Если наследоваться от QSpinBoxa, то доступ можно получить к лэйауту без проблем. Код
Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: pastor от Февраль 15, 2009, 18:58 Можно попроьывать сделать так (ну или вроде того):
Код
Код
Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: Dendy от Февраль 15, 2009, 19:16 Как вариант - можете переопределить стиль:
Код
Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: AAXEE от Февраль 15, 2009, 21:29 Спасибо, буду осмысливать.
Константин, в вашем виджете довольно трудно разбираться( исключительно из-за моей неопытности), поэтому Ваш вариант не рассматриваю=) Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: AAXEE от Февраль 15, 2009, 22:17 Еще я пробовал вот так:
Код: BigSpinBox::BigSpinBox( QWidget * parent ) : QSpinBox( parent ) Код: class BigSpinBox : public QSpinBox Если бы не это- был бы очень простой вариант. Название: Re: От кого наследоваться:QWidget или QSpinBox? Отправлено: pastor от Февраль 15, 2009, 22:51 На выполнении сегфолтится. Интересно, почему? Если бы не это- был бы очень простой вариант. Потому что у QSpinBox нет layout'а |