[Interest] applicationStateChanged in QML

Bo Thorsen bo at vikingsoft.eu
Fri Aug 15 07:47:33 CEST 2014


Den 15-08-2014 03:28, mark diener skrev:
> Does anybody know how to receive application signals from
> QGuiApplication in Qt Quick 2.0 application?
>
> I do not want to use a binding
>
> The signal coming from QGuiApplication ->void *applicationStateChanged
> <http://qt-project.org/doc/qt-5/qguiapplication.html#applicationStateChanged>*(Qt::ApplicationState/state/)
>
> Inside QML, I want to use a Connections component to get the signal
> triggered in QML
>
> Or can I only deal with this signal inside of C++?   And then use my own
> global singleton class
> to trigger a signal into QML?
>
> I have searched high and low.
>
> Maybe there is a way to use the Qt.application.active property and bind
> it so that it will call
> a javascript function?

Hi Mark,

To use a Connection object, you have to export the source object from 
C++. Something like this:

view.rootObject()->setContextProperty("qGuiApp", &guiApp);

Now you can access the object from QML as you would any item.

Connections {
   target: qGuiApp
   onApplicationStateChanged: {
     console.log("State change", state)
     ...
   }
}

You can export and use any QObject like this.

I usually don't export the Qt objects directly, but instead make some 
kind of backend object that holds the fundamental state of the application.

Bo Thorsen,
Director, Viking Software.

-- 
Viking Software
Qt and C++ developers for hire
http://www.vikingsoft.eu



More information about the Interest mailing list