Hi again,
I got something working and I thought I would share how I proceeded.
In my application, the active/visible Tab is selected programmatically. As stated in the original message, the content of the Tab is dependent on the result/state of an external test. That test might be completed before the Tab is made visible.
So, I first defined a set of enumerators in C++, made available to my QML code by using Q_ENUM macro and used Q_PROPERTY to define a variable in C++ that can be accessed in QML. Let's refer to this variable as testResult.
I also used a set of (internal) State in my QML Tab content (see original post). In the QML file defining the Tab content, I added a Component.onCompleted which is used to the internal State based on the value of testResult. Once the Tab is visible, different controls (BUTTON) are used to let the operator select different operations, repeating the execution of the test for example, setting a new value to the internal State.
Using QML State allows me to take advantage of onStateChange, and consequently set the visible content of the Tab according to the internal State.
Communication between C++ and QML when the value of testResult changes is achieved using an emit notification.
This solution avoids exposing internal QML State values and the variable testResult to the javascript code I am using.
Thanks,
Daniel