Integration of iOS frameworks in Qt Creator (Qt, QML)



  • Hi all,

    does anyone knows if frameworks like UIKit or iAd can be integrated in Qt Creator?
    I want to use them in a Qml app.

    Thanx,
    Cochleas


  • Lifetime Qt Champion

    Hi,

    What do you mean by integrated in Qt Creator ? Write your software to use Apple's frameworks ?



  • Yes. For example add in the *.pro file something to include the frameword, e.g.g the iAd.framework and then in the *.h and *.cpp file
    to include the header and use the class objects.

    Even in the qml it would be interesting...



  • I use iOS frameworks in Qt projects and it's very easy ... but you cannot use them from .cpp files because they are objective-C classes, so you have to add a .mm file to the project.
    And for use them in QML it's very easy: create a QObject subclass, implement it into an .mm file where you wrap any method you like of the framework and register the QObject for use it in QML.

    In .pro files I use the following directive:
    @

    This flag is necessary otherwise you get an link error

    I open a bug reports for that

    QMAKE_LFLAGS += -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks

    Add the framework you need

    LIBS += -framework AdSupport -framework StoreKit

    the objective sources should be put in this variable

    OBJECTIVE_SOURCES += backend_ios.mm
    @


  • Lifetime Qt Champion

    Then the quickest is to take a look at QtMacExtras, you'll see how it's setup to work with frameworks.

    You can't write Objective-C/C++ in qml files. You'll have to create a derived QObject class that you will use to call native functions/methods/etc...



  • Thank you guys!!!
    I will check these and come back if I have still problems...

    Thanks a lot!



  • Hi Gianluca and SGaist,

    as I am new into this field I would need some more help:

    To Gianluca:
    Could you please post an example of such a subclass implementation in the *.mm file? Also what I have to put in the backend_ios.mm?

    To SGaist:
    Could you also please post an example of creating a derived class?

    Thanks in advance for your guidance!


  • Lifetime Qt Champion

    Take a look at the QtMacExtras module and the cocoa platform plugins, they show it nicely


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.