QTableView растягивает заголовки, но сохраняет интерактивность

Я изо всех сил пытаюсь разместить свой QTableView, чтобы упростить его для пользователя.

Эти функции работают так, как мне действительно нужно:

ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

Проблема в том, что заголовки больше не настраиваются пользователем, полностью заморожены.

Я знаю, что у нас также есть эта функция, которая позволяет пользователю настраивать заголовки, но после ее использования заголовки возвращаются, как если бы я не использовал QHeaderView::Stretch раньше:

ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);

Я действительно искал это на многих веб-сайтах, но мне не удалось найти понятный ответ для моего уровня.

Спасибо!


person Adan RH    schedule 07.01.2020    source источник
comment
Привет! То, что я прочитал в документе Qt, вы не можете выполнять оба этих поведения одновременно, и я не вижу причины для этого. Я предполагаю, что вам нужно растянуть, когда произойдет изменение размера. И если я прав, то вы можете использовать QHeaderView::Interactive по умолчанию и изменять размер только для событий/сигналов вручную.   -  person Andrei    schedule 07.01.2020
comment
Я попытался вручную установить ширину, а затем использовать QHeaderView::Interactive и все еще не работает: C   -  person Adan RH    schedule 08.01.2020


Ответы (1)


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

  for(int c = 0;c<=4;c++){
    ui->tableView->horizontalHeader()->resizeSection(c, 150);

    }

    ui->tableView->horizontalHeader()->setStretchLastSection(true);

Спасибо

person Adan RH    schedule 09.01.2020