QTableWidget があります。そのセルには、状態に応じて色を変える必要がある 3 状態の QSliders を表示する必要があります。-1 = 赤、0 - 通常、1 - 緑。QPalette を QSlider に設定しようとしましたが、成功しませんでした。QSliderをレイアウト付きのQWidgetに配置し、パレットをQWidgetに適用しようとしましたが、成功しませんでした。どうやってするか?カラー サイン (境界線または背景全体など) が必要です。どうすればよいですか?
1031 次
1 に答える
1
を使用して、 にルールをQItemDelegate
適用できます。QSlider
QTableWidget
詳細。
最初に、 から派生する必要がありますQItemDelegate
。qitemdelegate を使用した例による優れたドキュメントの提示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 に答える