Как изменить цвет 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);