PyQt: Как установить разные размеры заголовков для отдельных заголовков?
У меня есть список, содержащий списки с двумя элементами, словом и числом. Этот список будет представлен с использованием табличного виджета.
Моя цель - создать таблицу с двумя столбцами и с необходимыми строками, но заголовок столбца, в котором будут слова, должен быть больше столбца чисел.
Я мог бы использовать изменение размера столбцов для содержимого, но я хочу, чтобы таблица без белого пустого белого пространства вокруг таблицы после изменения размера.
Для создания кода 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)