completer->popup()代表了输入时弹出的下拉框,是QAbstractItemView类型,设置它的样式的坑在于必须要setItemDelegate,否则部分样式不生效。
setScrollBar设置了scrollBar的样式,可以参考之前我写的qt文章进行自定义。
void UtilitiesTool::setStyledCompleter(QCompleter* completer)
{
QStyledItemDelegate* d = new QStyledItemDelegate;//NOTE 必须 否则部分style不生效
completer->popup()->setItemDelegate(d);//NOTE 必须
UtilitiesTool::setScrollBar(completer->popup());
completer->popup()->setStyleSheet(
"QAbstractItemView{background-color:rgba(44, 50, 61, 1);color:rgba(219, 226, 241, 1);border:1px solid rgba(37, 41, 48, 1);}"
"QAbstractItemView::item:hover{background-color:rgba(77, 155, 213, 1)}");
}