1) setText должен корректно работать - 90% что вылетало из-за обращения к несуществующему элементу StringList
2) зачем вы используете takeItem - вообще в справку заглядывали зачем этот метод??? Вы вынаете из виджета итем, затем меняете его текст и засовываете обратно ---- ЗАЧЕМ?
3) Есть оператор item( row, column ); который дает указатель на нужный элемент дерева без его выдергивания из дерева - и при этом ЕСТЕСТВЕННО можно сделать setText !!!!!!!!
4) А вот удобная процедура для обращения к любому итему по X, Y - если его не было то он создастся
C++ (Qt)
QTableWidgetItem * getItem(QTableWidget* tbl, int row, int column )
{
QTableWidgetItem *Item = tbl->item( row, column );
if ( Item )
return Item;
Item = new QTableWidgetItem();
tbl->setItem( row, column, Item );
return Item;
};
типа так:
getItem( pMyTreeWidget, 2, 0 )->setText( "CRAZY CRAZY CRAZY " );
getItem( pMyTreeWidget, 5, 10 )->setText( "CRAZY CRAZY CRAZY " );
getItem( pMyTreeWidget, 1, 3 )->setText( "CRAZY CRAZY CRAZY " );
лишь бы у таблицы колонок строк хватало (не помнб расширяется она автоматом или нет)