PyQt: Как установить разные размеры заголовков для отдельных заголовков?

У меня есть список,содержащий списки с двумя элементами, словом и номером.Этот список будет представлен с помощью tablewidget.

моя цель-создать таблицу с двумя столбцами и с необходимыми строками,но заголовок столбца, в котором будут слова, должен быть больше столбца numbers.

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

для создания из кода gui я использую QtDesigner.Спасибо.

2 ответов


есть несколько методов QHeaderView класс, который, вероятно, сделает то, что вы хотите. Самое простое:

table.horizontalHeader().setStretchLastSection(True)

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

кроме того, существуют методы для установки ResizeMode столбцы.

для Qt5:

table.setColumnWidth(1, 80)
table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)

Для Qt4:

table.setColumnWidth(1, 80)
table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch)

это исправит ширину второго столбца и обеспечит автоматическое изменение размера первого столбца, чтобы заполнить оставшееся пространство (но предотвращая любое другое изменение размера пользователем).


лучшее решение для этого, в Qt5 вы должны использовать setSectionResizeMode вместо setResizeMode:

tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

или

tabv.horizontalHeader().setSectionResizeMode(1)