Относительное изменение размера столбцов QTableWidget

Я использую QTableWidget с 4-5 столбцами в диалоге. Размер диалогового окна можно изменять, я хочу, чтобы размер столбцов виджета таблицы изменялся в соответствии с размером диалогового окна, т. Е. Если я увеличиваю ширину диалогового окна, столбцы, изначально установленные с большой шириной, должны расширяться больше столбцов, которые были установлены с меньшей шириной.

Короче говоря, я хочу, чтобы относительное изменение размера, как column1 должно занимать 20%, column2 занимать 50% ширины моей таблицы (которая увеличивается с шириной диалога) и так далее.

Как этого можно добиться для QTableWidget в Qt?

Любое решение, указатели или подсказки будут очень полезны.

1 ответ

Нужно просто обновлять ширину столбцов всякий раз, когда размер вашего диалога изменяется.

MyDialog::resizeEvent(QResizeEvent *event) {
  int width = ui->tableWidget->size().width();
  ui->tableWidget->setColumnWidth(0, width * .2);
  ui->tableWidget->setColumnWidth(1, width * .5);
  ...
}

Вы также можете напрямую создать подкласс QTableWidget и сделать то же самое.

Другие вопросы по тегам