一、 问题描述
最近遇到一个问题,在QTableview中通过自定义Model实现了复选功能,但是复选框的样式总是设置失败,在此做一记录。
二、 原始样式配置
初期通过设置QTableview中的checkbox进行样式修改,如下所示:
QCheckBox {
spacing: 5px;
border: 1px solid;
border-color: rgb(85, 170, 255);
}
QCheckBox::indicator {
width: 13px;
height: 13px;
}
QCheckBox::indicator:unchecked {
image: url(:/image/Pushbutton/checkbox_n.png);
}
QCheckBox::indicator:checked {
image: url(:/image/Pushbutton/checkbos_s.png);
}
QTableView{
background-color: transparent;
gridline-color:white;
border: 0px solid;
}
三、 解决方案
通过对比其他可行方案,例如使用代理进行独立回执过于繁琐,此处为qss样式的实现方式:
QTableView{
background-color: transparent;
gridline-color:white;
border: 0px solid;
}
QTableView::item {
border: none;
border-bottom: 1px solid rgb(50, 50, 50);
}
QTableView::item:selected {
background: rgb(0, 160, 230);
}
QTableView::indicator {
width: 16px;
height: 16px;
}
QTableView::indicator:enabled:unchecked {
image: url(:/image/Pushbutton/tableview_check_n.png);
}
QTableView::indicator:enabled:checked {
image: url(:/image/Pushbutton/tableview_check_s.png);
}
其效果如下图所示: