QTreeWidget устанавливает высоту каждой строки в зависимости от содержимого

Я хочу сделать редактируемые ячейки с многострочным содержимым в QTreeWidget, и я использую для этого QPlainTextEdit в качестве делегата. Мне нужно установить правильный размер для всех строк, чтобы переключение между редактированием и отображением прошло без каких-либо видимых изменений.

rect = textEdit.blockBoundingRect(textEdit.firstVisibleBlock())
  • С помощью этого я могу узнать высоту, которую мне нужно установить для ряда, но я упустил место, где я могу это сделать.

Как я могу установить правильную высоту для строк QTreeWidget на этапе инициализации и как обрабатывать ее изменения?

1 ответ

Решение

Вам необходимо переопределить делегат sizeHint(). Он будет автоматически обрабатывать высоту и ширину строки. И обратите внимание, что свойство QTreeWidget::iformRowHeight в этом случае должно быть ложным, хотя оно будет замедлять рендеринг элемента дерева, если он содержит много строк.

Другие вопросы по тегам