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)