如何控制 QListWidget 选择
Posted
技术标签:
【中文标题】如何控制 QListWidget 选择【英文标题】:How to control QListWidget selection 【发布时间】:2014-09-22 14:23:35 【问题描述】:我用 QListWidget 实现了一个弹出列表。但是我发现当鼠标按下一个项目时,列表的选择就完成了。但我想要的是点击选择。我怎样才能改变它? (无委托)
更新:
我有一个 QListWidget 的子类。当我按住一个项目的左键时,这个列表的选择就完成了(发出信号、更改 selectedItems()、更改 Qss QListWidget::item:selected 等)。我想要的是在项目上释放鼠标时进行这些更改,而不是按住它。
【问题讨论】:
子类化 QListWidget @niyou 是的,我就是这么做的。但是如何控制选择行为。 【参考方案1】:QListWidget 有函数setSelectionMode 和setSelectionBehaviour。如果这不是您想要的,请更清楚地说明您想要实现的目标。
针对问题的更新,您需要处理小部件的鼠标事件以防止鼠标按下事件发生时选择(不要调用基类函数),然后自己处理设置选择,以响应鼠标释放事件。
由于 QListWidget 是一个带有内部模型的便利类,你最好使用QListView,它允许你操作它的selection model。
如果您决定这样做,请确保有充分的理由,因为用户希望列表小部件以特定方式工作,而更改这一点可能只会惹恼用户。
【讨论】:
是的,当我停止在事件处理程序中使用默认函数时,会出现很多奇怪的行为。我将传递给 QListView。泰。以上是关于如何控制 QListWidget 选择的主要内容,如果未能解决你的问题,请参考以下文章