qt - QTreeWidget: renaming item to empty -


just quick , easy (maybe) question:

how prevent edit on qtreewidgetitem allowing empty string?

currently, use qtreewidgetitem::itemchanged(qtreewidgetitem*, int) check modifications, , of course, check empty string, don't have previous text. i'm left setting "default" qstring, bad...

thanks & cheers!

i suggest using item delegate tree widget handle possible user input. below simplified solution.

the implementation of item delegate:

class delegate : public qitemdelegate { public:     void setmodeldata(qwidget *editor, qabstractitemmodel *model,                       const qmodelindex &index) const     {         qlineedit *lineedit = qobject_cast<qlineedit *>(editor);         if (!lineedit->ismodified()) {             return;         }         qstring text = lineedit->text();         text = text.trimmed();         if (text.isempty()) {             // if text empty, nothing - preserve old value.             return;         } else {             qitemdelegate::setmodeldata(editor, model, index);         }     } }; 

implementation of simple tree widget editable item , custom item delegate:

qtreewidget tw; qtreewidgetitem *item = new qtreewidgetitem((qtreewidget*)0,                                             qstringlist(qstring("item 1"))); item->setflags(qt::itemisenabled | qt::itemiseditable); tw.addtoplevelitem(item); tw.setitemdelegate(new delegate); tw.show(); 

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

How to get multiresult with multicondition in Sql Server -