From the official qt doc, it says:
Signals and slots, properties and children of object are available as properties of the created QJSValue.
So I expect to access the children of a QObject, but I do not find the right way to do it.
I have code as below:
QWidget parent;
QLabel label(&parent);
label.setText("Hello World");
QJSEngine engine;
QJSValue jsv = engine.newQObject(&parent);
engine.globalObject().setProperty("w", jsv);
qDebug() << engine.evaluate("JSON.stringify(w);").toString();
// qDebug() << engine.evaluate("w.myLabel.text").toString(); // Does not work, how to access myLabel.text in script
The debug output is shown as below, but I cannot find the child label information (eg. the text "Hello World") in this output. So, my question is how to access the QLabel (objectName: "myLabel") in js script?
{
"objectName": "",
"modal": false,
"windowModality": 0,
"enabled": true,
"geometry": {},
"frameGeometry": {},
"normalGeometry": {},
"x": 0,
"y": 0,
"pos": {},
"frameSize": {},
"size": {},
"width": 640,
"height": 480,
"rect": {},
"childrenRect": {},
"childrenRegion": {},
"sizePolicy": {},
"minimumSize": {},
"maximumSize": {},
"minimumWidth": 0,
"minimumHeight": 0,
"maximumWidth": 16777215,
"maximumHeight": 16777215,
"sizeIncrement": {},
"baseSize": {},
"palette": {},
"font": {},
"cursor": {},
"mouseTracking": false,
"isActiveWindow": false,
"focusPolicy": 0,
"focus": false,
"contextMenuPolicy": 1,
"updatesEnabled": true,
"visible": false,
"minimized": false,
"maximized": false,
"fullScreen": false,
"sizeHint": {},
"minimumSizeHint": {},
"acceptDrops": false,
"windowTitle": "",
"windowIcon": {},
"windowIconText": "",
"windowOpacity": 1,
"windowModified": false,
"toolTip": "",
"toolTipDuration": -1,
"statusTip": "",
"whatsThis": "",
"accessibleName": "",
"accessibleDescription": "",
"layoutDirection": 0,
"autoFillBackground": false,
"styleSheet": "",
"locale": {},
"windowFilePath": "",
"inputMethodHints": 0
}