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

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

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

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

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


person Anwar Shaikh    schedule 22.05.2013    source источник


Ответы (1)


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

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

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

person Chris    schedule 22.05.2013