bonjour je pense que QModelIndexList est bogué pour visual studio 2012 pro
(en fait tout les versions et archs) en debug (pas testé en release , il parait que ça marche) le programme est compilé en x64 (je suis sur Windows 8 )
le problème est reproduit avec VS mais pas avec gcc mingw. j'utilise les dll de debug de qt (pas de mix release debug).

Le code suivant crash a la fin de porte d'une fonction dans lequel il est declaré , (un clear() conduit au meme crash)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
QModelIndexList ModelIndexList= View->selectedRows();
la sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HEAP[manykeyboard11.exe]: Invalid address specified to RtlValidateHeap( 00000098F2F50000, 00000098F4BB3620 )
manykeyboard11.exe a déclenché un point d'arrêt.
Debug Assertion Failed!
 
Program: ...dio 2012\Projects\manykeyboard11\x64\Debug\manykeyboard11.exe
File: f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgheap.c
Line: 1322
 
Expression: _CrtIsValidHeapPointer(pUserData)
 
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
 
(Press Retry to debug the application)
manykeyboard11.exe a déclenché un point d'arrêt.
pile d'appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
>	msvcr110d.dll!_free_dbg_nolock(void * pUserData, int nBlockUse) Ligne 1322	C++
 	msvcr110d.dll!_free_dbg(void * pUserData, int nBlockUse) Ligne 1265	C++
 	msvcr110d.dll!operator delete(void * pUserData) Ligne 54	C++
 	manykeyboard11.exe!QModelIndex::`scalar deleting destructor'(unsigned int)	C++
 	manykeyboard11.exe!QList<QModelIndex>::node_destruct(QList<QModelIndex>::Node * from, QList<QModelIndex>::Node * to) Ligne 431	C++
 	manykeyboard11.exe!QList<QModelIndex>::free(QListData::Data * data) Ligne 759	C++
 	manykeyboard11.exe!QList<QModelIndex>::~QList<QModelIndex>() Ligne 733	C++
 	manykeyboard11.exe!DeleteVirtualKeyboardDialog::accept() Ligne 50	C++
 	manykeyboard11.exe!DeleteVirtualKeyboardDialog::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Ligne 54	C++
 	QtCored4.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Ligne 3549	C++
 	QtGuid4.dll!QDialogButtonBox::accepted() Ligne 186	C++
 	QtGuid4.dll!QDialogButtonBoxPrivate::_q_handleButtonClicked() Ligne 1145	C++
 	QtGuid4.dll!QDialogButtonBox::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Ligne 98	C++
 	QtCored4.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Ligne 3549	C++
 	QtGuid4.dll!QAbstractButton::clicked(bool _t1) Ligne 221	C++
 	QtGuid4.dll!QAbstractButtonPrivate::emitClicked() Ligne 550	C++
 	QtGuid4.dll!QAbstractButtonPrivate::click() Ligne 541	C++
 	QtGuid4.dll!QAbstractButton::mouseReleaseEvent(QMouseEvent * e) Ligne 1124	C++
 	QtGuid4.dll!QWidget::event(QEvent * event) Ligne 8372	C++
 	QtGuid4.dll!QAbstractButton::event(QEvent * e) Ligne 1083	C++
 	QtGuid4.dll!QPushButton::event(QEvent * e) Ligne 684	C++
 	QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Ligne 4551	C++
 	QtGuid4.dll!QApplication::notify(QObject * receiver, QEvent * e) Ligne 4094	C++
 	QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) Ligne 915	C++
 	QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) Ligne 234	C++
 	QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget * receiver, QMouseEvent * event, QWidget * alienWidget, QWidget * nativeWidget, QWidget * * buttonDown, QPointer<QWidget> & lastMouseReceiver, bool spontaneous) Ligne 3160	C++
 	QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg) Ligne 3363	C++
 	QtGuid4.dll!QtWndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Ligne 1696	C++
 	user32.dll!000007fe2fbc171e()	Inconnu
 	user32.dll!000007fe2fbc14d7()	Inconnu
 	QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 810	C++
 	QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 1202	C++
 	QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 150	C++
 	QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 204	C++
 	QtGuid4.dll!QDialog::exec() Ligne 555	C++
 	manykeyboard11.exe!VirtualKeyboardView::DeleteVirtualKeyboard() Ligne 54	C++
 	manykeyboard11.exe!VirtualKeyboardView::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Ligne 57	C++
 	QtCored4.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Ligne 3549	C++
 	manykeyboard11.exe!main_window::DeleteVirtualKeyboardSignal() Ligne 126	C++
 	manykeyboard11.exe!main_window::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Ligne 63	C++
 	QtCored4.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Ligne 3549	C++
 	QtGuid4.dll!QAbstractButton::clicked(bool _t1) Ligne 221	C++
 	QtGuid4.dll!QAbstractButtonPrivate::emitClicked() Ligne 550	C++
 	QtGuid4.dll!QAbstractButtonPrivate::click() Ligne 541	C++
 	QtGuid4.dll!QAbstractButton::mouseReleaseEvent(QMouseEvent * e) Ligne 1124	C++
 	QtGuid4.dll!QWidget::event(QEvent * event) Ligne 8372	C++
 	QtGuid4.dll!QAbstractButton::event(QEvent * e) Ligne 1083	C++
 	QtGuid4.dll!QPushButton::event(QEvent * e) Ligne 684	C++
 	QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Ligne 4551	C++
 	QtGuid4.dll!QApplication::notify(QObject * receiver, QEvent * e) Ligne 4094	C++
 	QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) Ligne 915	C++
 	QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) Ligne 234	C++
 	QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget * receiver, QMouseEvent * event, QWidget * alienWidget, QWidget * nativeWidget, QWidget * * buttonDown, QPointer<QWidget> & lastMouseReceiver, bool spontaneous) Ligne 3160	C++
 	QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg) Ligne 3363	C++
 	QtGuid4.dll!QtWndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Ligne 1696	C++
 	user32.dll!000007fe2fbc171e()	Inconnu
 	user32.dll!000007fe2fbc14d7()	Inconnu
 	QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 810	C++
 	QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 1202	C++
 	QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 150	C++
 	QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Ligne 204	C++
 	QtCored4.dll!QCoreApplication::exec() Ligne 1187	C++
 	QtGuid4.dll!QApplication::exec() Ligne 3813	C++
 	manykeyboard11.exe!main(int argc, char * * argv) Ligne 18	C++
 	manykeyboard11.exe!__tmainCRTStartup() Ligne 536	C
 	manykeyboard11.exe!mainCRTStartup() Ligne 377	C
 	kernel32.dll!000007fe2f5e167e()	Inconnu
 	ntdll.dll!000007fe31d83501()	Inconnu


et voilà des constatations similaires

http://www.qtforum.org/article/13355...n-failure.html

http://www.qtcentre.org/threads/2776...on-on-destruct

https://bugreports.qt-project.org/browse/QTBUG-7884

merci d'avance