How to debug non-visible main window?
-
Hello all,
The RefPerSys project is an open source symbolic artificial intelligence (GPLv3+) project for Linux/x86-64 (only; we don't care about other OSes), e.g. Ubuntu 21. In the long term RefPerSys needs to have a web interface, but the RefPerSys team (see mail messages on the RefPerSys forum) is today lacking web programming skills. So as a temporary workaround (to create thousands of RefPerSys objects, including those which will generate C++ code), we sadly need a Qt5 GUI interface.
In its git commit 61ed3f6ead45a we have some unusual software architecture: the main program does not use or link Qt5. Since our wish is to generate a lot of C++ code and to eventually have a web interface (using libonion). Our lack of web expertise forces us to provide temporarily a Qt GUI interface (to "bootstrap", that is later generate C++ code, implementing our web interface). But with a specific program option (after building with a successful
make all
), when running./refpersys --Qt -AGUI
the ./refpersys process is dlopen-ing a shared object which contains all the Qt related stuff. That shared object is
./tempgui-qrps.so
and only it contains Qt specific code. In particular, the C++ code creating (our Qt subclass of)QApplication
is only there, in C++ filetempgui-qrps.cc
in functionsrps_tempgui_init_progarg
(creating QApplication and Qt main windows) andrps_tempgui_run
(running the Qt event loop). Both are dlsymed.Thanks for your help. My Qt skills are really rusty. (if possible, reply also by email)
Regards
Basile Starynkevitch basile@starynkevitch.net, near Paris in France.
-
Hi,
@Basile_Starynkevitch said in How to debug non-visible main window?:
we sadly need a Qt5 GUI interface.
Why so sad ?
More seriously, you might not be aware yet but you can use Qt for WASM and serve your Qt GUI as a web application.
That might alleviate your web skills workforce requirements.
Can you explain the current issue you have ?
Failure to start the application ?
Nothing shown at all ?
Any message on the terminal ?
Did you try to start your application with the QT_DEBUG_PLUGINS environment variable set to 1 to see what is happening ?