[Interest] Display XML in tree view

Jason H jhihn at gmx.com
Wed Aug 3 17:36:08 CEST 2016



> Sent: Wednesday, August 03, 2016 at 11:26 AM
> From: "Murphy, Sean" <smurphy at walbro.com>
> To: "interest at qt-project.org" <Interest at qt-project.org>
> Subject: Re: [Interest] Display XML in tree view
>
> > Look at Roles. In your case, the displayRole (role 0, default) is "widget" You
> > can add your own roles starting with Qt::UserRole. See roleNames() roles are
> > additional data you can attach to the model items.
> 
> I'm not sure what roles gets me? Since I'm trying to display a read-only 
> representation of the original XML tree structure and just allow the user to 
> expand/collapse nodes they don't really care about, I think I'm ONLY concerned
> about Qt::DisplayRole, since that's what the QTreeView uses to populate the
> widget.
> 
> The "hardest" part of what I needed to do, and I use "hardest" very loosely
> since it wasn't very difficult, was getting the properly formatted raw XML
> string out of the DOM. The issue is there isn't anything in the QDomNode class 
> that produces a QString in the format I want:  the raw XML tag (with the possible 
> caveat of QDomNode::save(), I'm looking at that now).
> 
> So I've modified the DomItem class from the simple DOM model example,
> http://doc.qt.io/qt-5/qtwidgets-itemviews-simpledommodel-example.html, 
> to have a rawXMLTag() function that recreates that raw XML tag from the internal 
> QDomNode. Then in myTreeModel::data() it's trivial to call DomItem::rawXMLTag()
> when role == Qt::DisplayRole.
> 
> My understanding of the usefulness of Qt::UserRole is if I wanted to pass 
> other data around that is visually hidden from the user, but is would still 
> be accessible when connecting slots to signals like
>   QAbstractItemView::clicked()
> But in my case, I don't have any need to pass around other data, I only care 
> about showing that original XML tag.
> 
> Or am I missing the point of what you're saying?


That's all right. I wasn't sure if you wanted to display "widget" or something else. Something you write previously made me think that might not be what you wanted. 



More information about the Interest mailing list