[SOLVED] Delegate at QTableView



  • Hi All, I have QTableView, at some of column I set delegate, and at that delegate create QLineEdit, and set them RegExpValidator, but some times that RegExpValidator dosen't work, and i don't understand why... :(
    code of delegate:
    @public: QWidget * createEditor(QWidget * parent, const QStyleOptionViewItem & /option/, const QModelIndex & /index/) const {
    QLineEdit * editWidget = new QLineEdit(parent);
    connect(editWidget, SIGNAL(textEdited(const QString &)), this, SLOT(onTextEdited(const QString &)));
    QString regExpStr = "[";
    //... add valid chars to regExpStr;
    regExpStr+="]*";
    QRegExp regExp(regExpStr);
    regExp.setCaseSensitivity(Qt::CaseInsensitive);
    editWidget->setValidator(new QRegExpValidator(regExp, parent));
    return editWidget;
    }
    //--------------------------------------------------------------------------------------------------
    public: void setEditorData(QWidget * editor, const QModelIndex & index) const {
    QString value = index.data(Qt::EditRole).toString();
    ((QLineEdit )editor)->setText(value);
    }
    //--------------------------------------------------------------------------------------------------
    public: void setModelData(QWidget * editor, QAbstractItemModel * model, const QModelIndex & index) const {
    QLineEdit * edit = (QLineEdit )editor;
    QString value = edit->text();
    model->setData(index, value, Qt::EditRole);
    }
    //--------------------------------------------------------------------------------------------------
    private slots: void onTextEdited(const QString &txt){
    ((QLineEdit
    )sender())->setText(txt.toUpper());
    }@
    variable regExpStr equals "[-XAGSRCF]
    " or "[-X#0-9]"



  • What do you mean by "doesn't work" ?

    Are you sure that all your model datas are satisfying the regexp ?



  • by “doesn’t work”, i mean so some times i (user) can write not valid data to LineEdit, but when i set a breakpoint to look what regExp set to validator, validator start work correctly.



  • no more ideas?



  • [quote author="Maxim Prishchepa" date="1314096765"]no more ideas?[/quote]
    Please practice some patience. It is not well regarded to "kick" your topic within 24 hrs of your last post.



  • tnx, all for help!
    I'm solve this problem by myself.
    Validator doesn't work when the text in QLineEdit is programmatically sets to not valid.
    I solve this problem to set additional validation to the setEditorData function.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.