QT Designer QTableWidget как учитывать ширину колонок по самому заголовку и по ширине содержимого ячеек
QT Designer QTableWidget как учитывать ширину колонок по самому заголовку и по ширине содержимого ячеек
Чтобы максимально все информация влезала и лишнего не было !!!
Ширину по содержимому ячеек ранее сделал так:
self.tableWidget.resizeColumnsToContents()
Ответы (1 шт):
QHeaderView *QTableView::
horizontalHeader()constВозвращает горизонтальный заголовок табличного представления.
Больше https://doc.qt.io/qt-5/qtablewidget-members.html
void QHeaderView::
setSectionResizeMode(QHeaderView::ResizeMode mode)Устанавливает ограничения на то, как размер заголовка может быть изменен до тех, которые описаны в данном режиме.
Больше https://doc.qt.io/qt-5/qheaderview.html#setSectionResizeMode
QHeaderView::ResizeToContentsQHeaderView автоматически изменит размер раздела до оптимального размера в зависимости от содержимого всего столбца или строки. Размер не может быть изменен пользователем или программно.
Больше https://doc.qt.io/qt-5/qheaderview.html#ResizeMode-enum
import sys
from PyQt5.Qt import *
class ExampleWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(300, 200))
self.myarray = [
[1, 2, 3, 4],
[1.1, 2.1, 3.1, 4.1],
[1.2, 2.2, 3.2, 4.2],
[1.3, 2.3, 3.3, 4.3]
]
self.centralWidget = QWidget()
self.setCentralWidget(self.centralWidget)
self.tableWidget = QTableWidget()
grid = QGridLayout(self.centralWidget)
grid.addWidget(self.tableWidget)
line = len(self.myarray)
column = len(self.myarray[0])
self.tableWidget.setRowCount(line)
self.tableWidget.setColumnCount(column)
row_labels = ['A', '222', 'Hello World']
self.tableWidget.setHorizontalHeaderLabels(row_labels)
for c, row in enumerate(self.myarray):
for r, e in enumerate(row):
item = QTableWidgetItem(str(e))
self.tableWidget.setItem(r, c, item)
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
self.tableWidget.horizontalHeader().setMinimumSectionSize(0)
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setStyle("Windows")
mainWin = ExampleWindow()
mainWin.show()
sys.exit( app.exec_() )

