[Interest] Proxied view not updating live when source model does

Murphy, Sean Sean.Murphy at centauricorp.com
Wed Sep 22 19:21:29 CEST 2021


> > have you run  QAbstractItemModelTester
> > https://doc.qt.io/qt-6/qabstractitemmodeltester.html on the source
> > model and the proxy model?

Ok, I think I'm now using the tester, but I'm not sure I'm using it correctly. After I've populated my base model, assigned it as the source model to my proxy, and then connected the models up to their respective views I call:

    QAbstractItemModelTester* baseModelTester = new QAbstractItemModelTester(mBaseModel,
                                                                             QAbstractItemModelTester::FailureReportingMode::Warning,
                                                                             this);
    QAbstractItemModelTester* proxyModelTester = new QAbstractItemModelTester(mInvertRowsProxy,
                                                                              QAbstractItemModelTester::FailureReportingMode::Warning,
                                                                              this);

And then run the rest of my application normally. On first launch after adding those lines I saw the following statement twice in QtCreator's Application Output pane:

  qt.modeltest: FAIL! model->hasChildren(topIndex) () returned FALSE (qabstractitemmodeltester.cpp:366)

A quick google on that pointed to the fact that I was always returning my data size for rowCount() and 2 for columnCount() regardless of whether the parent index was valid or not. So adding:

if(parent.isValid())
    {
        return 0;
    }

to both rowCount() and columnCount() removed those errors and now my application runs silently.

Am I using the model index tester correctly?
Any other ideas on how to get this working?

Sean


More information about the Interest mailing list