crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаНачать новую тему
> QSpinBox в делегате
Vorchun
  опции профиля:
сообщение 12.11.2010, 15:57
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 26.8.2010
Пользователь №: 1981

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго дня.

Чего хочу: хочу чтоб определенная ячейка в которую модель будет выводить int в нередактируемом состоянии выглядела как спинбокс

Реализация аналогичного желания с комбобоксом и bool выглядит следующим образом:

void MyDelegateRelat::paint(
QPainter *qpPainter,
const QStyleOptionViewItem &qsoviOption,
const QModelIndex &qmiIndex
) const
{
QStyleOptionComboBox qsocbOption;

qsocbOption.QStyleOption::operator=( qsoviOption );

qsocbOption.currentText = qmiIndex.model()->data( qmiIndex ).toBool()
                           ? tr( "Отн." )
                           : tr( "Абс." );
qsocbOption.rect = qsoviOption.rect;

QApplication::style()->drawComplexControl( QStyle::CC_ComboBox, &qsocbOption, qpPainter );
QApplication::style()->drawControl( QStyle::CE_ComboBoxLabel, &qsocbOption, qpPainter );
}

У класса QStyleOptionComboBox есть : currentText - в который записываем значение из модели

реализация же моего желания должна выглядеть как то так:

void MyDelegateRank::paint(
QPainter *qpPainter,
const QStyleOptionViewItem &qsoviOption,
const QModelIndex &qmiIndex
) const
{
QStyleOptionSpinBox qsosbOption;

qsosbOption.QStyleOption::operator=( qsoviOption );
/*
qsosbOption.currentText = qmiIndex.model()->data( qmiIndex ).toBool()
                           ? tr( "Отн." )
                           : tr( "Абсолют." ); //АНАЛОГ ДЛЯ SPINBOX не найден
*/
qsosbOption.rect = qsoviOption.rect;

QApplication::style()->drawComplexControl( QStyle::CC_SpinBox, &qsosbOption, qpPainter );
}


Проблема в том, что я не нашел куда в QStyleOptionSpinBox можно запихнуть значение из модели. В итоге в нередактируемом состоянии ячейка выглядит как комбобокс с пустым значением. Порывшись в исходниках .*abstractspinbox, .*spinbox - я не нашел где именно отрисовывается значение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.11.2010, 16:04
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Vorchun, форматируй код, читай - Справка по кнопкам и тэгам форума
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 6:02