我有一个QListWidget
控件,我有一个信号槽selectionChanged
。该列表配置为多选。当用户拖动以选择多个项目时,当鼠标按钮仍然按下时,插槽被调用。在释放鼠标按钮之前,我不想处理更改。我真正需要的是某种 Editing Finished 信号,尽管不一定需要失去对控制的关注。请给这个新手一些指导好吗?
问问题
943 次
1 回答
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
或你想要做的任何事情。
希望有帮助。
于 2013-05-24T23:52:24.680 回答