一般情况下,当用户选择项目或窗口小部件获得焦点时,我需要禁用突出显示QListWidget。但我认为,这应该是所有小部件执行此操作的常用方法。
答案 0 :(得分:1)
您可以为Highlight
和HighlightedText
角色设置调色板。只需将小部件的Highlight
颜色设置为Base
,将HighlightedText
设置为Text
:
QPalette palette;
palette.setColor(QPalette::Highlight, listWidget->palette().color(QPalette::Base));
palette.setColor(QPalette::HighlightedText, listWidget->palette().color(QPalette::Text));
listWidget->setPalette(palette);
答案 1 :(得分:0)
或者,您可以执行以下操作:
QListWidget lw;
[..]
QPalette p = lw.palette();
QColor bgColor = p.color(QPalette::Window);
QColor fgColor = p.color(QPalette::Text);
// Set the item selection color to be the background color of the list widget.
lw.setStyleSheet(QString("QListWidget:item:selected:active { background: %1;} "
"QListWidget:item:selected:active {color: %2; }")
.arg(bgColor.name()).arg(fgColor.name()));
答案 2 :(得分:0)
如果要突出显示(整个)QListView Widget,请在表单编辑器中更改此属性或在代码中进行设置:
listWidget->setFocusPolicy(Qt::NoFocus);