без делегата ни как, а что за проблема встроить ваш виджет как делегат?
без делегата вполне может быть как - виджеты, которые создаются в коде, нормально ресайзятся в ячейках, но виджет, созданный в дизайнере почему-то нет
а делегат - это здесь совершенно лишнее, без него все остальное отлично работает, делегаты вообще нужны и полезны, когда на много одинаковых ячеек таблицы нужен одинаковый редактор (в этом случае при привязке виджетов получается большой расход ресурсов), а если ячейка такая в таблице одна-две-три, то городить делегатов совершенно ни к чему, это мартышкин труд, бессмысленное кодирование
Есть подозрение, что ui-форму нужно поместить в отдельный виджет со своим лейаутом и уже этот виджет помещать в ячейку.
то есть? ui-форма - и так наследник виджета, и лейаут в нем есть, в какой ее еще виджет помещать?
вот такой виджет:
{
QSpinBox* spin = new QSpinBox();
spin->setRange( INT_MIN, INT_MAX );
spin->setValue( tmp.value.toInt() );
widget = spin;
}
ресайзится вместе с ячейкой таблицы
а вот такой:
{
PathSelector* path = new PathSelector(); // : QWidget, создан в дизайнере
path->le()->setText( tmp.value.toString() );
widget = path;
}
почему-то нет, привязываются они оба одним и тем же вызовом
ui->tableWidget->setCellWidget( row, 1, widget );