Небольшой фрагмент кода, иллюстрирующий проблему:
auto tw = new QTableWidget(3,3);
tw->setItem(0, 0, new QTableWidgetItem("test123 test123 test123 test123 test123 test123 test123"));
for (int i = 1; i < 3; ++i)
for (int j = 0; j < 3; ++j)
tw->setItem(i, j, new QTableWidgetItem("test123"));
tw->setSpan(0,0,1,3);
tw->show();
tw->resizeRowsToContents();
В этом примере генерируется табличка 3х3. В ячейке [0, 0] находится длинный текст, который по умолчанию не вмещается в эту ячейку. Для нее я создаю
columnSpan на 3 столбца, чтобы текст мог влезть.
Все выглядит нормально до момента вызова функции
QTableWidget::resizeRowsToColumns()
. Все строки, кроме самой первой, нормально подбирают свою минимальную высоту. Первая же строка (где длинный текст) наоборот увеличивается в три раза.
Складывается ощущение, что в работе функции не учитывается, что в ячейке [0,0] есть
span и
resizeRowsToContents()
подбирает такую высоту этой строки, чтобы уместить весь длинный текст внутри одной ячейки.
Подскажите пожалуйста, почему
QTableWidget
игнорирует
columnSpan при вызове функции
resizeRowsToContents()
? Как можно решить эту проблему?