Я использую QTreeWidget и устанавливаю виджет для QTreeWidgetItem в QTreeWidget. Он работает нормально, но когда я делаю то же самое во второй раз, приложение вылетает.
Ниже работает нормально.
QTreeWidget* treewidget = new QTreeWidget();
QTreeWidgetItem* item0 = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item0")));
treewidget->insertTopLevelItem(0,item0);
QSlider* slider0 = new QSlider();
treewidget->setItemWidget(item0, 0, slider0);
Но если я добавляю последнюю строку еще раз, происходит сбой при запуске приложения.
Ниже происходит сбой.
QTreeWidget* treewidget = new QTreeWidget();
QTreeWidgetItem* item0 = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item0")));
treewidget->insertTopLevelItem(0,item0);
QSlider* slider0 = new QSlider();
treewidget->setItemWidget(item0, 0, slider0);
treewidget->setItemWidget(item0, 0, slider0); // Intentionally added to simulate the issue
Вышеприведенный пример показывает проблему, но в моем приложении на основе некоторых событий я удаляю элементы виджета дерева и добавляю их позже. Когда я устанавливаю виджет элемента (после добавления элементов позже), я получаю сбой.
Я не мог понять, почему. Любые идеи? К вашему сведению, я использую Qt 5.3.2 MSVC 2010, 32-разрядную версию.