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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSpinBox в QTableView  (Прочитано 6882 раз)
dimetcm
Гость
« : Май 21, 2010, 16:03 »

Подскажите нубу.

Есть таблица QTableView, в ячейках этой таблицы должны быть QSpinBox.
Наследовался от QStyledItemDelegate. Перегрузил методы createEditor и paint.
Вот код paint
Код:
	
void paint ( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
QStyledItemDelegate::paint(painter, option, index);
QStyleOptionSpinBox spinbox;
spinbox.rect = option.rect;
QApplication::style()->drawComplexControl(QStyle::CC_SpinBox , &spinbox, painter);
}
Все хорошо, но есть несколько проблем:
1. QSpinBox выглядит не активным
2. Для редактирования нужно делать двойной клик (хотелось бы сразу).
3. При двойном щелчке значение становится равным 0 (хотелось что бы оставалось предыдущее значение)

Заранее благодарен.
Записан
crossly
Гость
« Ответ #1 : Май 21, 2010, 16:27 »

1.
Код:
QPalette QStyleOption::palette
2.
Код:
void QAbstractItemView::mousePressEvent ( QMouseEvent * event )   [virtual protected]
3.
Код:
void QItemDelegate::setEditorData ( QWidget * editor, const QModelIndex & index ) const   [virtual]
Записан
Kolobok
Гость
« Ответ #2 : Май 21, 2010, 16:44 »

В QItemDelegate для целых чисел и так создается QSpinBox.
Записан
dimetcm
Гость
« Ответ #3 : Май 21, 2010, 16:47 »

В QItemDelegate для целых чисел и так создается QSpinBox.
Я хотел что бы он выглядел как SpinBox даже когда его не редактируют
Записан
dimetcm
Гость
« Ответ #4 : Май 21, 2010, 16:51 »

1.
Код:
QPalette QStyleOption::palette
вставил
Код:
spinbox.palette.setCurrentColorGroup(QPalette::Active);
ничего не произошло
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Май 21, 2010, 18:17 »

dimetcm, для работы в один клик переопредели в делегате метод editorEvent
Ссылки по теме редактирования в один щелчёк:
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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