0

我有一个 QTableWidget。在它的单元格中,我需要显示三态 QSlider,它们必须根据它们的状态改变它们的颜色。-1 = 红色,0 - 正常,1 - 绿色。我试图将 QPalette 设置为 QSlider - 没有成功。我试图将 QSlider 放入带有布局的 QWidget 并将调色板应用于 QWidget - 没有成功。怎么做?我需要任何颜色标志(边框或全背景等) 怎么做?

4

1 回答 1

1

你可以使用QItemDelegate,然后你就可以统治你的QSliderinto QTableWidget

细节。

首先,您应该从QItemDelegate. 一个好的文档doc.qt.digia 使用 qitemdelegate 举例说明

您应该替换QSpinBoxQSlider. 阅读本文档后,您可以根据需要为您的QSlider.

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

Toeditor总是打开的,你应该使用openPersistentEditor(). 例如:

QTableWidgetItem *item = new QTableWidgetItem;
table->insertRow(row);
table->setItem(row, index_your_delegate, item);
table->openPersistentEditor(item);
于 2012-10-22T09:45:01.297 回答