Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

qt framwork gui object not rendering on LXDE



  • hello,

    I'm somewhat of a newbie to qt development and linux desktop alternatives, so please be gentle.

    i've developed a c++ desktop application for ubuntu 16 running standard unity desktop , i used qt framework 5.10.1 classes QMainWindow,QPushButton,QTextEdit ,QLabel... it works nicely.

    then tried deploying ( simply copied the binary created on my desktop ) to a different machine that runs the lxde desktop,
    and on it -> the various gui objects don't render correctly/at all.

    can anyone provide more information about what must be done in order to use qt framework gui objects on lxde ?
    ( i've found a similar unanswered post - https://forum.qt.io/topic/64071/qt-demos-not-rendering-to-screen )

    thanks,
    Omer


  • Lifetime Qt Champion



  • thank you very much jsulm,
    i have read the document, but i'm afraid i don't understand what it/you are suggesting.

    are you suggesting i try static linkage ?
    ( i don't understand how this will help, the target pc running lxde has a valid version of qt framework runtime on it )

    thanks,
    Omer.


  • Lifetime Qt Champion

    @OmerBrandis said in qt framwork gui object not rendering on LXDE:

    are you suggesting i try static linkage ?

    No, I don't.
    I suggest you check whether you deployed your app properly as described in that link. For example: did you deploy plug-ins properly?



  • Hello Jsulm,

    if i did not install qt-framework runtime correctly, shouldn't i get some sort of runtime error ? (which i don't...)

    Thanks,
    Omer


  • Lifetime Qt Champion

    @OmerBrandis If you deploy your app then there is no need to install Qt framework on the target machine. That's the whole point of "deploying". If you did not deploy properly your app can fail silently. Did you try to start the app from a terminal to see whether there are any warnings/errors? Why don't you check the link I provided and compare to what you did? Especially "Creating the Application Package" part. It describes how your application package should be structured.



  • Hello Jsulm,

    the app is started from a terminal. no error/messages are written by qt to the terminal/stdout/stderr.

    by "deploy" i only meant - copied my executable.
    the required qt framework libs have already been installed.

    by "silent failure" due to incomplete deployment you mean that there are cases where a missing lib or one that has an incorrect version , can lead to silent failures ?

    omer.


  • Lifetime Qt Champion

    @OmerBrandis said in qt framwork gui object not rendering on LXDE:

    the required qt framework libs have already been installed

    Now the question is: is the other machine also Ubuntu 16 and has Qt 5.10.1? If not then this is not going to work. Either build your app on that other machine or deploy the app properly.

    You can do this on the other machine:

    ldd YOUR_APP_EXE
    

    and see whether any libs are missing.



  • Hello,

    we got it working.
    it seems that there was a problem with "deployment" after all.
    somehow there were more then one instance/installation of the qt framework on the target pc + a very old version of the executable was copied to it,
    once the correct version of the application was used and using the correct version of the qt framework , the gui elements were rendered correctly.
    :-)

    Omer.


Log in to reply