2016-02-12 14:59 GMT+01:00 Elvis Stansvik <elvst...@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()) >
For posterity, this is the custom editor widget: class MineralLevelsEditor(QFrame): def __init__(self, parent=None): super(MineralLevelsEditor, self).__init__(parent) self._levels = None self.setAutoFillBackground(True) self.setFrameStyle(QFrame.StyledPanel | QFrame.Raised) self.setLayout(QFormLayout()) @pyqtProperty(QVariant, user=True) def levels(self): return self._levels @levels.setter def levels(self, levels): self._levels = levels for mineral, level in levels.items(): slider = QSlider(Qt.Horizontal) slider.setMinimum(0) slider.setMaximum(100) slider.setValue(level) slider.valueChanged.connect(partial(self._setLevel, mineral)) self.layout().addRow(mineral + ':', slider) def _setLevel(self, mineral, level): self._levels[mineral] = level Elvis > 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? > > Many thanks in advance. > > Elvis _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest