Russian Qt Forum

Qt => Model-View (MV) => Тема начата: AlphaGh0St от Апрель 21, 2016, 19:38



Название: QTableView + QFileSystemModel зависание
Отправлено: AlphaGh0St от Апрель 21, 2016, 19:38
Всем привет!
Обнаружил странный баг (а баг ли это).
Работаю в Windows 10, Qt Creator (Community) 3.5.1,  Qt 5.5.1 (MSVC 2013, 32 бита), Собрано Oct 13 2015 в 07:38:22.

На форме QTableView и QPushButton. В конструкторе виджета следующий код:
Настраиваем модель и таблицу, ничего особенного.
Код:
    model = new QFileSystemModel(this);
    model->setFilter(QDir::AllEntries | QDir::NoDot | QDir::Hidden);
    ui->tableView->setModel(model);

    ui->tableView->setRootIndex(model->setRootPath("C:\\"));
    ui->tableView->scrollToTop();

    connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(onCliked()));

Дальше самое интересное. По нажатию кнопки, выполняется переход на рабочий стол:
Код:
    ui->tableView->setRootIndex(model->setRootPath("C:\\Users\\user\\Desktop"));
    ui->tableView->scrollToTop();

Код в слоте успешно отрабатывает, из слота выходим и программа зависает.
Приостановив выполнение в отладчике, видно следующий call stack:
Цитировать
0   ntdll!DbgBreakPoint         0x776a8d21   
1   ntdll!DbgUiRemoteBreakin         0x776d9d59   
2   ??         0xabae3b83   
3   ntdll!DbgUiIssueRemoteBreakin         0x776d9d20   
4   KERNEL32!BaseThreadInitThunk         0x744e38f4   
5   ntdll!RtlUnicodeStringToInteger         0x77695de3   
6   ??            

И асм инструкции:
Код:
0x776a8d20                      cc                    int3
=> 0x776a8d21  <+0x0001>        c3                    ret

Скриншот прилагаю:
(http://s02.radikal.ru/i175/1604/98/28f06eceba7e.jpg)

Гугл в решении проблемы, оказался бесполезен.
Кто-нибудь сталкивался с подобным? Что посоветуете?
Благодарю.


Название: Re: QTableView + QFileSystemModel зависание
Отправлено: AlphaGh0St от Апрель 21, 2016, 23:13
Выявил проблему методом исключения :D ;D
Дело в том, что у меня на рабочем столе находится ярлык на шару другой системы (из виртуал бокса).
Система выключена и если попытаться открыть ярлык, explorer виснет. Да explorer виснет даже если по ярылку кликнуть правой кнопкой мыши  ;D ;D

Такие дела.
Чей это баг: Qt или MS - это уже другой вопрос. Кому жаловаться то  ;D