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

Is it possible to create a Qt's library project (that uses QThread/QTcpSocket) without QApplication?



  • Hi all,

    I want to use QTcpSocket/QThread in a Qt's library project (dll project). But it could not work without QApplication instance. Is there any solution in order to not use QApplication?

    Thanks advance for your helps and clarifications,



  • You can use this library from an application that creates an instance of "QCoreApplication":http://qt-project.org/doc/qt-4.8/qcoreapplication.html or QApplication.
    If the target application is not used Qt, you must create an instance of QCoreApplication in the library, and take care of their destruction.



  • I am facing exactly the same problem. Could you ellaborate a little bit, Konstantin?

    Thanks in advance.



  • Try to ask author of "this thread":http://qt-project.org/forums/viewthread/26483/, it seems that he has at least partially working solution calling QCoreApplication::exec in separated thread (in dll).



  • Thank you Bogdan. Please forgive my ignorance because I'm a beginner in Qt, but it doesn't seem like the same problem. The author of that thread has a problem regarding the use of QThread with signal and slots. What I need to do is to make several consecutive calls to the methods of QTcpSocket in the same function, such as:

    @
    do_something();
    ...
    socket.write(blahblah);
    ...
    socket.read(blahblah);
    ...
    socket.write(blahblah);
    @

    that is, without signals and sockets.

    Any help in how to structure the code would be greatly appreciated.

    Kind regards.



  • Just do as you wrote, I mean call write/read methods directly, you don't need to use signals/slots. Moreover, as far as I see read/write are not slots so you cannot connect to them even if you want.

    And I suppose you should start separated thread for your problem, as I believe your problem is far different than the main question asked in this thread.


Log in to reply