[Interest] Item editor at preferred size when using custom delegate?
Elvis Stansvik
elvstone at gmail.com
Fri Feb 12 15:12:17 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.
>
> So question is: How can I make the editor widget show up at its preferred size?
And also, to clarify: I don't want the row of the table to change size
when going into editing of an item. I just want the editor to be at
its preferred size, on top of the table rows.
Elvis
>
> Many thanks in advance.
>
> Elvis
More information about the Interest
mailing list