PyQt: Как мне установить разные размеры заголовков для отдельных заголовков? - PullRequest
9 голосов
/ 20 декабря 2011

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

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

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

Для создания кода GUI я использую QtDesigner.Thanks.

Ответы [ 2 ]

17 голосов
/ 20 декабря 2011

Есть несколько методов класса 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)

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

5 голосов
/ 29 июля 2015

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

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

или

tabv.horizontalHeader().setSectionResizeMode(1)
...