[Interest] Item editor at preferred size when using custom delegate?
Elvis Stansvik
elvstone at gmail.com
Fri Feb 12 15:54:50 CET 2016
2016-02-12 14:59 GMT+01:00 Elvis Stansvik <elvstone at gmail.com>:
> Hi all,
>
> I have a very basic item delegate which opens up a custom editor:
>
> class MineralLevelsDelegate(QStyledItemDelegate):
>
> def createEditor(self, parent, option, index):
> return MineralLevelsEditor(parent)
>
> def updateEditorGeometry(self, editor, option, index):
> editor.setGeometry(
> option.rect.x(), option.rect.y() + option.rect.height(),
> editor.sizeHint().width(), editor.sizeHint().height())
>
> What you see in updateEditorGeometry(...) above is my attempt at
> making the editor show up at its preferred size (instead of being
> constrained to the cell in the QTreeView I'm using). My attempt is to
> use the editor's sizeHint() in the call to setGeometry(...).
>
> The problem seems to be that the sizeHint() or the editor is 0x0 at
> that point (has not been laid out?), and consequently the editor show
> up as a tiny little rect (see attached sizehint.png). I'm also
> attaching hardcoded.png, which shows the editor when I instead
> hardcode it to 200x100. This is kind of the look I want, but obviously
> I don't want to hardcode it to 200x100, but have it use its preferred
> size.
Half replying to myself here: The size hint is actually returning
16x16. I think the problem is maybe that setEditorData has not been
called before updateEditorGeometry is called, which in my case means
that my sliders has not been created and added to the editor's layout
yet.
So my question is now: How can I adjust the editor's size after
setEditorData has been called?
Elvis
>
> So question is: How can I make the editor widget show up at its preferred size?
>
> Many thanks in advance.
>
> Elvis
More information about the Interest
mailing list