0

QTableWidget があります。そのセルには、状態に応じて色を変える必要がある 3 状態の QSliders を表示する必要があります。-1 = 赤、0 - 通常、1 - 緑。QPalette を QSlider に設定しようとしましたが、成功しませんでした。QSliderをレイアウト付きのQWidgetに配置し、パレットをQWidgetに適用しようとしましたが、成功しませんでした。どうやってするか?カラー サイン (境界線または背景全体など) が必要です。どうすればよいですか?

4

1 に答える 1

1

を使用して、 にルールをQItemDelegate適用できます。QSliderQTableWidget

詳細。

最初に、 から派生する必要がありますQItemDelegateqitemdelegate を使用した例による優れたドキュメントの提示doc.qt.digia

に置き換える必要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);
于 2012-10-22T09:45:01.297 に答える