Название: setSpan в Qt5 Отправлено: barm12345 от Декабрь 08, 2020, 16:32 Господа программисты добрый день.
Запутался немного с переводом QTableWidget, подскажите, по-возможности: Qt3: QTableItem*item = table->item(table->numRows()-2,0); item->setSpan(item->rowSpan()+1,1); Qt5: int row = table->rowCount()-2; table->setSpan(row, 0, rowSpan(row, 0)+1, 1); Дает сообщение: qtableview::setspan span cannot overlap По-другому сделал: QTableWidgetItem*item = table->item(table->rowCount()-2,0); table->setSpan(item->row(), item->column(), table->rowSpan(item->row(), item->column())+1, table->columnSpan(item->row(), item->column())); Ошибка - value()->column() -1 Название: Re: setSpan в Qt5 Отправлено: kambala от Декабрь 08, 2020, 21:53 Цитировать qtableview::setspan span cannot overlap это значит, что есть пересечение со span другого айтема. по коду одного айтема непонятно где ошибка.Название: Re: setSpan в Qt5 Отправлено: barm12345 от Декабрь 09, 2020, 09:55 Скорее всего здесь (продолжение кода):
QTableItem*item = table->item(table->numRows()-2,0); item->setSpan(item->rowSpan()+1,1); item->table->item(table->numRows()-2,1); item->setSpan(item->rowSpan()+1,1); item->table->item(table->numRows()-2,2); item->setSpan(item->rowSpan()+1,1); Название: Re: setSpan в Qt5 Отправлено: kambala от Декабрь 09, 2020, 10:24 это точно полный код? тут у тебя получается, что результат последующих вызовов item->table->item() никуда не сохраняется, поэтому все setSpan выполняются на исходном айтеме, причем его rowSpan с каждым вызовом растет на 1.
Название: Re: setSpan в Qt5 Отправлено: barm12345 от Декабрь 09, 2020, 10:54 У меня там цикл и условия, эта часть условия так выглядит:
for (int j = 0; j < chanel; j++) { ... if(j) { table->setNumRows(table->numRows() + 1); QTableItem*item = table->item(table->numRows()-2,0); item->setSpan(item->rowSpan()+1,1); item->table->item(table->numRows()-2,1); item->setSpan(item->rowSpan()+1,1); item->table->item(table->numRows()-2,2); item->setSpan(item->rowSpan()+1,1); } ... table->setText(table->numRows() - 1, 3, string); } Целиком тут трудно показать, смысл именно как setSpan приблизить к Qt5 Название: Re: setSpan в Qt5 Отправлено: kambala от Декабрь 09, 2020, 11:00 цикл сути не меняет — в коде ошибка :)
намного проще будет помочь, если ты понимаешь что делает код (визуально в программе видишь) и можешь это словами описать. А тупо перевести синтаксис на Qt 5 — ну в первом посте в первом варианте все правильно. Название: Re: setSpan в Qt5 Отправлено: barm12345 от Декабрь 09, 2020, 11:02 Ну мне главное, что первый вариант похож на правду, тогда дальше покопаюсь и попробую описать суть проблемы, если она возникнет. Спасибо)
|