Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Trying to change spinboxdelegate example from spinbox to QTextEdit but it dosn't show



  • Hi
    im tring to find out why i can't see QTextEdit in item delegate , in my application so i remmbered there is simple example in the examples
    i did put simple QTextEdit in the sample code and it also didn't show the QTextEdit why ? what im doing wrong
    here is the modifyed code:
    @QWidget *SpinBoxDelegate::createEditor(QWidget parent,
    const QStyleOptionViewItem &/
    option /,
    const QModelIndex &/
    index */) const
    {
    //QSpinBox *editor = new QSpinBox(parent);
    //editor->setMinimum(0);
    //editor->setMaximum(100);
    QTextEdit *editor = new QTextEdit(parent);
    //editor->setGeometry(QRect(40, 30, 401, 31));
    editor->setLayoutDirection(Qt::LeftToRight);
    editor->setLocale(QLocale(QLocale::English, QLocale::UnitedStates));
    editor->setFrameShape(QFrame::WinPanel);
    editor->setLineWidth(0);
    editor->setReadOnly(true);
    editor->setText("This is text test!!1");
    return editor;
    }
    //! [1]

    //! [2]
    void SpinBoxDelegate::setEditorData(QWidget editor,
    const QModelIndex &index) const
    {
    /
    int value = index.model()->data(index, Qt::EditRole).toInt();

    QSpinBox *spinBox = static_cast<QSpinBox*>(editor);
    spinBox->setValue(value);*/
    

    QTextEdit textEdit = static_cast<QTextEdit>(editor);
    textEdit->setText("This is text test!!1");

    }
    //! [2]

    //! [3]
    void SpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
    const QModelIndex &index) const
    {
    /*QSpinBox spinBox = static_cast<QSpinBox>(editor);
    spinBox->interpretText();
    int value = spinBox->value();

    model->setData(index, value, Qt::EditRole);*/
    

    QTextEdit textEdit = static_cast<QTextEdit>(editor);
    }
    //! [3]

    //! [4]
    void SpinBoxDelegate::updateEditorGeometry(QWidget editor,
    const QStyleOptionViewItem &option, const QModelIndex &/
    index */) const
    {
    editor->setGeometry(option.rect);
    }@



  • The code looks ok at a first sight. Did you try to run a debugger? Put some qDebug() message into the methods. Did you forget to set the delegate on the view?


Log in to reply