Qt TableWidget如何设置默认的选中样式?
时间: 2024-10-11 19:13:03 浏览: 28
在Qt的TableWidget中,要设置默认选中的样式,你可以使用`QTableSelectionModel`提供的功能。首先,你需要将`TableWidget`和`selectionModel`关联起来,并设置选中模式。然后可以为选中的行设置特定的样式。
以下是一个基本的例子:
```cpp
QTableWidget *table = new QTableWidget;
QTableSelectionModel *selectionModel = table->selectionModel();
// 创建一个选中样式
QBrush selectedBrush(QColor("lightblue")); // 或者自定义颜色
QPen selectedPen(QColor("black"));
// 设置选中模式(如行选择)
selectionModel->setSelectionMode(QAbstractItemView::SingleSelection);
// 当行被选中时,应用样式
void onRowSelected(const QModelIndex &index) {
if (selectionModel->isSelected(index)) {
QStyleOptionViewItem viewOptions;
style()-> initFrom(&viewOptions);
viewOptions.palette.setCurrentColorGroup(QPalette::Active);
viewOptions.palette.setBrush(QPalette::Highlight, selectedBrush);
viewOptions.palette.setBrush(QPalette::HighlightedText, selectedPen);
table->itemDelegate()->paint(table, &viewOptions, index);
}
}
// 给selectionModel注册信号槽
connect(selectionModel, &QItemSelectionModel::currentChanged, this, &onRowSelected);
```
在这个示例中,当你在TableWidget中点击一行,就会触发`onRowSelected`函数,它会应用你之前设置的选中样式。
阅读全文