Как получить высоту fontmetrics функции рисования QStyledItemDelegate в конструкторе делегата? - PullRequest
0 голосов
/ 18 февраля 2020

Я разрабатываю приложение, содержащее Qlistview в режиме Iconmode и с настраиваемым QStyledItemDelegate. Высота делегата должна быть рассчитана в соответствии с высотой метрики шрифта внутри переопределенной функции paint класса QStyledItemDelegate. Как только высота известна, она используется в sizeHint много раз. Проблема в том, что я не знаю, откуда Qt вычисляет эту высоту. Или лучше сказать, что я не знаю, как я могу получить высоту в конструкторе делегата. Высота, к сожалению, отличается от qApp-> fontMetrics (). Height (), а также отличается от fontMetrics (). Height () Qlistview.

Единственное решение, которое у меня есть, - это сначала создать тестовое Qlistview. и мой QStyledItemDelegate и прочитайте высоту в функции paint и сохраните это значение. Затем удалите тестовый Qlistview и создайте реальный Qlistview и QStyledItemDelegate с соответствующей высотой.

В документации Qt QStyledItemDelegate :: paint () написано: «Эта функция рисует элемент, используя QStyle представления». Может быть, я могу получить высоту из этого QStyle, но как это возможно?

...