'signal slot' v/s direct call
-
we often do communication between UI [qml] and backend [c++].
how one can decide, which is better interface method, like to use signal-slots or other direct call methods, like register method.?? -
I would suggest trying to write your backend C++ objects with a property-based API (see Q_PROPERTY macro). Then just bind your QML ui element properties to the backend properties as needed.
-
Both actually have similar overhead, since both are Qt metaobject calls. The best way is probably to develop a benchmark that executes a lot of operations and measure the execution time.
-
Better is the one which suits you more in a given situation.
With signals, you can connect a slot on both C++ and QML side, with Q_INVOKABLE you are "tied" to C++. Both uses are, IMO, needed (at least I use them...).