Я разрабатываю компьютерное приложение с PySide, и я использую QTableWidget. Скажем, моя таблица имеет 3 столбца, но содержащиеся в них данные очень разные, например (для каждой строки) длинное предложение в первом столбце, а затем 3-значные числа в двух последних столбцах. Я хотел бы, чтобы изменил размер моей таблицы, чтобы настроить его размер на данные или, по крайней мере, для того, чтобы иметь возможность установить размеры столбцов как (скажем) 70/15/15% от доступного пространства.PySide - PyQt: Как настроить ширину столбца QTableWidget как долю доступного пространства?
Каков наилучший способ для этого?
Я пробовал table.horizontalHeader().setResizeMode(QHeaderView.Stretch)
после прочтения this question, но он делает 3 колонки одинакового размера.
Я также пробовал table.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents)
благодаря Fabiocomment, но он не заполняет все доступное пространство по мере необходимости.
Ни Interactive
, Fixed
, Stretch
, ResizeToContents
от QHeaderView documentation, кажется, чтобы дать мне то, что мне нужно (см второе изменение).
Любая помощь будет оценена, даже если она предназначена для Qt/C++! Большое спасибо.
EDIT: я нашел своего рода обходной путь, но это еще не то, что я ищу:
header = table.horizontalHeader()
header.setResizeMode(QHeaderView.ResizeToContents)
header.setStretchLastSection(True)
Было бы лучше, если бы существовал способ setStretchFirstSection
, но, к сожалению, делает похоже, не один.
EDIT 2:
Единственное, что может быть изменен в таблице последний столбец, пользователь может ввести номер в нем. Красные стрелки указывают, что я хотел бы иметь.
Вот что происходит с ResizeToContents
Попробуйте QHeaderView.ResizeToContents вместо QHeaderView.Stretch – Fabio
Это работает, но это не совсем то, что я ищу, потому что с помощью 'ResizeToContents', поскольку мои столбцы недостаточно велики, они не заполняют свободное пространство. Я отредактирую, чтобы он стал более ясным. – BusyAnt