Как изменить цвет QWidget в QTableWidget

У меня есть QTableWidget. В его ячейках мне нужно отобразить QSliders с 3 состояниями, которые должны менять свой цвет, в зависимости от их состояния. -1 = красный, 0 - нормальный, 1 - зеленый. Я попытался установить QPalette на QSlider - без успеха. Я попытался поместить QSlider в QWidget с помощью Layout и применить палитру к QWidget - безуспешно. Как это сделать? Мне нужен любой цветной знак (границы или полный фон и т. Д.) Как это сделать?

1 ответ

Решение

Ты можешь использовать QItemDelegateтогда ты сможешь править своим QSlider в QTableWidget,

Деталь.

Во-первых, вы должны извлечь из QItemDelegate, Хорошие документы представлены doc.qt.digia пример использования qitemdelegate

Вы должны заменить QSpinBox в QSlider, И после прочтения этого документа, вы можете сделать необходимые настройки цвета QSlider,

QTableWidget *table = new QTableWidget(this);
table->setItemDelegateForColumn(index_column, delegate);
// or table->setItemDelegateForRow(index_row, delegate);
// or table->setItemDelegate(delegate);

к editor был открыт всегда, вы должны использовать openPersistentEditor(), Например:

QTableWidgetItem *item = new QTableWidgetItem;
table->insertRow(row);
table->setItem(row, index_your_delegate, item);
table->openPersistentEditor(item);
Другие вопросы по тегам