Quantcast
Channel: Installation and Deployment
Viewing all articles
Browse latest Browse all 22112

QTreeView->setRowHidden() does not work

$
0
0
Hi! Despite trying many combinations to call setRowHidden() that method always fail silently without any kind of error. After banging my head against this for hours I took a look at the implementation file qtreeview.cpp and realized that there are two checks at the beginning of this method: if (!d->model) return; and if (!index.isValid()) return; Unfortunately there is no easy way for me to know under which condition (if any) I fall in? Below is my call to that function and also the body of QTreeView::setRowHidden(). my method call: standardItem->setBackground(QColor::fromRgb(210,210,210)); //this line works just fine so I know standardItem is my item ui->treeView->setRowHidden(standardItem->index().row(), standardItem->parent()->index(), true); //this does nothing??? Body of setRowHidden(): void QTreeView::setRowHidden(int row, const QModelIndex &parent, bool hide) {     Q_D(QTreeView);     if (!d->model) return;     QModelIndex index = d->model->index(row, 0, parent);     if (!index.isValid()) return;     if (hide) {         d->hiddenIndexes.insert(index);     } else if(d->isPersistent(index)) { //if the index is not persistent, it cannot be in the set         d->hiddenIndexes.remove(index);     }     d->doDelayedItemsLayout(); } Requirement is I need to dynamically hide/show some of the rows while maintaining the structure of the underlying Model attached to the QTreeView. Any help in figuring that out would be much appreciated. Thanks :-)

Viewing all articles
Browse latest Browse all 22112

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>