Почему высота QSize, установленная в sizeHint, возвращает QRect с удвоенной высотой?
Я чувствую, что пропускаю что-то чрезвычайно очевидное, но ничего не могу найти в этом.
У меня есть пользовательский делегат элемента, для которого я установил высоту sizeHint равной 50, но оператор печати возвращает прямоугольник, который в два раза превышает высоту.
def sizeHint(self, option, index):
print("sizehint:", option.rect)
s = QtCore.QSize()
s.setWidth(option.rect.width())
s.setHeight(50)
return s
#output
sizehint: PySide2.QtCore.QRect(0, 0, 498, 100)
1 ответ
"Option.rect" - это прямоугольник, который представление рекомендует с учетом имеющейся у него общей информации (например, размер шрифта, ширина заголовка и т. Д.), Которую делегат должен использовать в качестве ссылки для своего рисования. или взаимодействие. Прямоугольник не принимает информацию о каждом элементе (информацию, которую вы хотите отобразить) время от времени, поэтому делегат предлагает sizeHint() в качестве рекомендуемого размера. На самом деле, если вы хотите получить размер по умолчанию, вам следует использовать super.
def sizeHint(self, option, index):
default_size_hint = super().sizeHint(option, index)
print("sizehint:", default_size_hint)
return QtCore.QSize(option.rect.width(), 50)