如何设置Qt::CheckStateRole边框为白色
时间: 2024-05-03 14:20:09 浏览: 18
您可以使用 QStyledItemDelegate 重写它的 paint() 函数并自定义项目的渲染方式来设置 Qt::CheckStateRole 边框的颜色。以下是一个示例代码片段:
```cpp
void CustomStyledItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
if(index.column() == your_checkbox_column_index && index.data(Qt::CheckStateRole).isValid())
{
QStyleOptionButton checkBoxOption;
checkBoxOption.rect = option.rect;
checkBoxOption.state = index.data(Qt::CheckStateRole).toInt() == Qt::Checked ? QStyle::State_On : QStyle::State_Off;
checkBoxOption.palette.setColor(QPalette::Active, QPalette::WindowText, QColor(255, 255, 255)); // 设置标签文本颜色为白色
checkBoxOption.palette.setColor(QPalette::Active, QPalette::Button, QColor(255, 255, 255)); // 设置复选框背景颜色为白色
checkBoxOption.palette.setColor(QPalette::Active, QPalette::Highlight, QColor(0, 0, 255)); // 设置复选框按下时的颜色
checkBoxOption.palette.setColor(QPalette::Active, QPalette::Base, option.palette.color(QPalette::Base)); // 设置复选框周围的边框颜色为白色
checkBoxOption.palette.setColor(QPalette::Active, QPalette::Text, option.palette.color(QPalette::Text)); // 设置复选框文本颜色为表格中的文本颜色
QApplication::style()->drawControl(QStyle::CE_CheckBox, &checkBoxOption, painter);
}
else
{
QStyledItemDelegate::paint(painter, option, index);
}
}
```
您需要继承 QStyledItemDelegate 并将表视图或树视图的项委托设置为新类的实例。记得将上述代码中的 "your_checkbox_column_index" 替换为您自己的项目列索引。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)