我用QListWidget实现一个弹出列表。但我发现当鼠标按下某个项目时,列表的选择就完成了。但我想要的是点击选择。我该怎么改变它? (没有代表)
更新
我有一个QListWidget的子类。当我按住项目上的左按钮时,完成此列表的选择(发出信号,更改selectedItems(),更改Qss QListWidget :: item:selected {}等)。我想要的是在项目上释放鼠标时进行这些更改,而不是按住它。
答案 0 :(得分:0)
QListWidget具有setSelectionMode和setSelectionBehaviour功能。如果这不是你想要的,请更清楚地解释你想要达到的目标。
响应问题的更新,您需要处理窗口小部件的鼠标事件,以防止在鼠标按下事件发生时选择(不调用基类函数),然后自己处理设置选择,以响应鼠标释放事件。
由于QListWidget是一个带有内部模型的便利类,你最好使用QListView,它允许你操纵它的selection model。
如果您决定这样做,请确保它有充分的理由,因为用户希望列表小部件以特定方式工作,并且更改此操作可能只会让用户烦恼。