是否有QListWidget的“编辑完成”信号?

时间:2013-05-24 22:47:25

标签: qt signals qlistwidget

我有一个QListWidget控件,我有selectionChanged信号的插槽。该列表配置为多选。当用户拖动以选择多个项目时,当鼠标按钮仍然按下时,将调用插槽。在释放鼠标按钮之前,我不想处理更改。我真正需要的是某种编辑完成信号,虽然不一定需要关注控制丢失。你能给这个新手一些指导吗?

1 个答案:

答案 0 :(得分:0)

http://doc.qt.io/qt-4.8/qlistwidget.html#signals

http://doc.qt.io/qt-4.8/qfocusevent.html

http://doc.qt.io/qt-4.8/qmouseevent.html

http://doc.qt.io/qt-4.8/qtimerevent.html

使用上述事件的某种组合或已经内置到QListWidget中的信号,然后启动“完成编辑计时器”。再次单击或编辑时,重置计时器。在计时器超时时,进行计算或过滤。

例如:

subclass QListWidget.

initialize the timer (singleshot, set at 750 ms or so)

itemSelectionChanged => start the timer

mousePressEvent => stop the timer

mouseReleaseEvent => start the timer

keyPressEvent => (shift),(ctrl), or (arrows) => stop the timer
keyReleaseEvent => (all keys released) => start the timer

focusOutEvent => start the timer

focusInEvent => stop the timer

connect the timer's timeout signal to a custom signal `myEditingFinished`

QListWidget之外,将myEditingFinished信号连接到runDatabaseQuery或您正在尝试做的任何事情。

希望有所帮助。