PySide2, как растянуть QTableWidget, чтобы он соответствовал Window? - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь, чтобы QTableWidget растягивался горизонтально, чтобы соответствовать ширине окна, но я не могу найти, как это сделать. Я новичок в Qt.

Фрагмент кода и изображение показывают, что при горизонтальном изменении размера окна программы QLineEdit растягивается, чтобы соответствовать ширине окна, а QTableWidget - нет.

enter image description here

import sys
from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QTableWidget

app = QApplication(sys.argv)

win = QWidget()
win.setWindowTitle('test')
win.setMinimumWidth(400)

layV1 = QVBoxLayout()
win.setLayout(layV1)

entry = QLineEdit(win)
entry.setPlaceholderText('test entry widget')
layV1.addWidget(entry)

table = QTableWidget(win)
table.setRowCount(10)
table.setColumnCount(5)
layV1.addWidget(table)

win.show()
app.exec_()

1 Ответ

1 голос
/ 15 января 2020

Вы можете использовать это, чтобы растянуть последний раздел:

table.horizontalHeader().setStretchLastSection(True) 

Если вы хотите растянуть указанный столбец c, вам нужно использовать QHeaderView. Быстрый пример с вашим кодом.

headerView = QHeaderView(QtCore.Qt.Horizontal, table)
table.setHorizontalHeader(headerView)
headerView.setSectionResizeMode(2, QHeaderView.Stretch)
headerView.setSectionsClickable(True)

Просто замените 2 на нужный столбец, чтобы растянуть!

...