Pelagicore / meta-pelux

PELUX is an open source, GENIVI compliant development platform that supports the Qt Automotive Suite
https://pelux.io
MIT License
39 stars 28 forks source link

[Q] Compatibility with Qt commercial qtcreator #242

Open sparkleholic opened 5 years ago

sparkleholic commented 5 years ago

I'm trying to test if I can make app with qtcreator and install via appman to the pelux. I installed qtcreator(commercial trial) which provides 'automotive suites examples'.

First of all, I configured the pelux toolchain kit (for rpi-auto) as described in pelux doc Then I selected a example in the qtcreator, which named 'hello-world'. The sample just has only qml files without native C/C++ file. Since the sample consists of qml files only, it doesn't need link step. But generated Makefile by qmake has the following line.

$(TARGET):  $(OBJECTS)  
    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)

However if I did with pre-existing automotive-suite toolchain included in the qt installer (for intel NUC), the generated Makefile was slight different.

hello-world:  $(OBJECTS)  

Eventually, it fails on 'link' step when I try with pelux toolchain. But with 'intel NUC' automotive-toolchain, there is no issue.

Do you know why different Makefiles are created based on the same qmake project file?

Gagi2k commented 5 years ago

Hi,

the difference in the Makefile is probably because you are cross-compiling which very often creates some slightly different Makefiles.

From the description it sounds like you would like to deploy and run an app from within QtCreator to a device which runs PELUX and a appman system-ui e.g. neptune3 or minidesk ? If that's the case the 'hello-world' example is not really what you are looking for, as it is a whole appman example which deploys a complete new system-ui and it's own apps.

If you just want to deploy an application to an already running system-ui, the appman examples are not a 100% fit, as they are more intended to show how to right a system-ui and use appman's features for this. For deploying an app you might want to try out the new wizard we added to create an appman application: File -> New File or Project -> Application -> Qt ApplicationManager Project

sparkleholic commented 5 years ago

New qt-appMan project seems to be installed well. Thanks a lot! :+1:

Do you know how to deal with the error (warning) that qtcreator can not find the QtApplicationManager module as follows? image

Gagi2k commented 5 years ago

Hi, yes, we are aware of this problem and are trying to fix it with the 5.12.1 release.

The problem is that appman is not shipped as a normal QML plugin and because of that QtCreator cannot find it. In the 5.12.1 release we will ship some code completion files which will help to fix the warning and will provide code completion for all appman types

sparkleholic commented 5 years ago

@Gagi2k Thanks for reply. I expected the commercial qtcreator would provide many functions for automotive suites, but I only found there was a way to use AppMgr for packing/running auto apps. And I couldn't find any gui widgets for qtcreator design mode, Could you let me know if there is a way to enable neptune ui widgets in the qtcreator-designer?

I just left some questions on the qt forum about automotive suite examples.

On creating new "appman project" in qtcreator, if I check "system ui" checkbox, qtcreator fails to launch the app. With unchecking, it seems to work fine.

minenko commented 5 years ago

@Gagi2k Thanks for reply. I expected the commercial qtcreator would provide many functions for automotive suites, but I only found there was a way to use AppMgr for packing/running auto apps.

In relation to Qt Auto, yes, correct. There will be some more extensions, e.g. for the Deployment Server

And I couldn't find any gui widgets for qtcreator design mode, Could you let me know if there is a way to enable neptune ui widgets in the qtcreator-designer?

Are you talking to about the classic Designer in Qt Creator or about Qt Design Studio? The latter was developed after Neptune, but it should be able to load a custom library. Netptune is made of Qt Quick Controls 2 with its own style, and a few own UI components on top. It should work with Qt Design Studio, but we did not try it yet

Using the classic Designer in Qt Creator was out of question when the Neptune was designed. We wanted to explore new approaches in Neptune which are not available in the standard widget library provided via Designer

On creating new "appman project" in qtcreator, if I check "system ui" checkbox, qtcreator fails to launch the app. With unchecking, it seems to work fine.

It sound like you are trying to launch a "system ui" on top of already running Neptune. Right? It does not work by nature. Basically as much as starting two desktop system on one PC. A "system ui" example and Neptune collide on one screen(s), since thy both are "system ui".

Take a deeper look on the "minidesk" example it covers all essential parts of the system on the UI side.

sparkleholic commented 5 years ago

Thanks @Gagi2k , @minenko I have some questions for the qt designer.

To successfully load a qml file from qtcreator's form editor, all importing qml components used in the qml file must be either plain qml files or native qml plugins compiled for the PC environment. Is that right?

This seems to be the same as qtcreator or qtdesign-studio.

If the native plugin is cross-compiled, or if the qml component only works in a specific environment, the qtcreator form editor will not load the qml file normally.

For example, as I understand that the qml type, such as ApplicationManagerWindow, requires a wayland environment, so if you open the qml file using this form editor, you'll get an error.

This also applies to webOS. We also provide the WebOSWindow type, but it is not shown properly in the qtcreator form editor.

The case that can not use the qtcreator form editor is the same in qtdesign studio. If you know the solution to these constraints, or if I know wrong, please let me know.

Gagi2k commented 5 years ago

Sorry i don't know, i never used the QML form editor

minenko commented 5 years ago

@sparkleholic No, you are fully correct. The "Designer" in Qt Creator was initially not designed for non-desktop environments which could use custom Window types. What surprises more is that the new Qt Design Studio does not consider this either whereas it was made in awareness of embedded systems which might not be based on the standard Window type. I've created a bug report to clarify this: https://bugreports.qt.io/browse/QDS-511