为什么向 QListView 添加 stylesheet 会改变不是由 style sheet 本身决定的行为?
Why does adding stylesheet to QListView change behavior that is not determined by the style sheet itself?
我有一个 QListView,我使用以下样式表向其中添加了行分隔符:
listView_->setStyleSheet("QListView::item { border-bottom: 1px solid black; padding: 2px; }");
但是发生了意想不到的事情 - 单击列表中的任何项目,数据从显示中消失。双击返回。我觉得这很奇怪。为什么会这样?
这是 QListView
这是我点击任何项目后立即发生的情况:
刚刚消失的数据,当我双击(而不是单击 - 或选择操作)时又回来了
为什么会发生这种情况,我该如何避免?
视图中的每个项目都有状态,例如 selected
状态表示当前选中的项目。现在,如果您在没有附加任何样式表的情况下查看列表,您会注意到所选项目具有深蓝色背景和白色文本。但是,当您分配此样式表时
QListView::item { border-bottom: 1px solid black; padding: 2px; }
您实际上是一次修改所有状态,包括选定状态,这导致它具有默认的白色背景和白色文本。例如,如果您添加另一个 属性:
QListView::item { border-bottom: 1px solid black; padding: 2px; background:red; }
您会注意到,所有项目(包括选中的和未选中的)都将具有红色背景。要解决此问题,您应该指定您的样式表必须仅应用于未选择的项目
QListView::item:!selected{ border-bottom: 1px solid black; padding: 2px; }
我有一个 QListView,我使用以下样式表向其中添加了行分隔符:
listView_->setStyleSheet("QListView::item { border-bottom: 1px solid black; padding: 2px; }");
但是发生了意想不到的事情 - 单击列表中的任何项目,数据从显示中消失。双击返回。我觉得这很奇怪。为什么会这样?
这是 QListView
这是我点击任何项目后立即发生的情况:
刚刚消失的数据,当我双击(而不是单击 - 或选择操作)时又回来了
为什么会发生这种情况,我该如何避免?
视图中的每个项目都有状态,例如 selected
状态表示当前选中的项目。现在,如果您在没有附加任何样式表的情况下查看列表,您会注意到所选项目具有深蓝色背景和白色文本。但是,当您分配此样式表时
QListView::item { border-bottom: 1px solid black; padding: 2px; }
您实际上是一次修改所有状态,包括选定状态,这导致它具有默认的白色背景和白色文本。例如,如果您添加另一个 属性:
QListView::item { border-bottom: 1px solid black; padding: 2px; background:red; }
您会注意到,所有项目(包括选中的和未选中的)都将具有红色背景。要解决此问题,您应该指定您的样式表必须仅应用于未选择的项目
QListView::item:!selected{ border-bottom: 1px solid black; padding: 2px; }