Изменение размера столбцов и строк QTableWidget для заполнения таблицы

У меня есть QTableWidget с количеством столбцов N, которые, когда количество столбцов установлено, автоматически заполняют весь QTableWidget. Когда я пытаюсь динамически изменить количество столбцов на столбцы N/2, размер каждого столбца не меняется. Это приводит к тому, что правая половина QTableWidget представляет собой не что иное, как пробел.

И наоборот, если бы я сбросил количество столбцов до 2 * N, ширина столбцов подстроится соответствующим образом и заполнит QTableWidget.

Мне интересно, как я могу сбросить количество столбцов и строк без пробелов в QTableWidget?


person sj755    schedule 01.07.2013    source источник


Ответы (1)


Вы пытались установить режим изменения размера QHeaderView?

    QTableWidget* myTable = new QTableWidet;
    QHeaderView* header = myTable->horizontalHeader();
    header->setResizeMode(QHeaderView::Stretch);

Изменить: как указано, в Qt 5:

    QTableWidget* myTable = new QTableWidet;
    QHeaderView* header = myTable->horizontalHeader();
    header->setSectionResizeMode(QHeaderView::Stretch);
person Calum Murray    schedule 01.07.2013
comment
Это работает. Однако вместо этого следует использовать setSectionResizeMode. setResizeMode недоступен в Qt5. Однако, похоже, мне приходится сбрасывать режим каждый раз, когда я обновляю количество строк или столбцов. - person sj755; 01.07.2013
comment
QHeaderView::setStretchLastSection(true) может также может быть вариантом, в зависимости от вашего приложения. - person Phlucious; 01.07.2013
comment
myTable.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch) в pyqt5 - person giuliano-oliveira; 23.09.2020