Closed sizeofvoid closed 2 years ago
Have you tried to compile and run qucs-s-0.0.22 with Qt5.x?
@zcx2020 Qucs-S will not compile using Qt5. Qucs-S shares a Qucs code, which depends on Qt3Support classes. These Qt3Support was dropped in Qt5, and compilation of such projects fails on Qt5. So, currently it is not clear how to port Qucs and Qucs-S to Qt5.
Thanks for the explanation.
1 Current Status
https://github.com/Qucs/qucs.github.io/wiki/Qt3GUISupport
says "manual work is needed to replace Qt3Support by newer classes". and "This manual work has been ongoing since ~end of 2012 and is mostly complete" and "One big issue is the widespread use of the Qt3Support class Q3PtrList "
https://github.com/Qucs/qucs.github.io/wiki/remove_Qt3PtrList
says "The status is that all the Qt3PtlList references were removed. The code is capable of loading schematics. The creation of schematics was not yet migrated."
So there is some work outstanding before qucs/qucs-s can use Qt5.
2 Future Compatibility
Qt4 is still available here
http://download.qt.io/archive/qt/
although you would have to build it from source on linux.
says "AppImage already includes Qt4 libraries and you don't need to install them explicitly."
So this does not seem to be a pressing issue even if future linux distros drop Qt4, provided the AppImage is maintained.
Unless of course future versions of qucs-s need Qt5 to support new features.
+1 to move to QT5 and maybe even QT6 as its already out. That would allow bring this amazing software back to FreeBSD :-)
Is Quc-S direct dependant on Qucs in a way that when Qucs gets ported to QT5 Qucs-S will also work straight away? :-)
+1 to move to QT5 and maybe even QT6 as its already out. That would allow bring this amazing software back to FreeBSD :-)
... not only FreeBSD. All other Linux Distrubtion would start to package this software.
+1 for Qt5 since I just tried to build qucs-s on FreeBSD and I got the dependency error. Sure we don't need to force the creator of qucs-s to do this, but my coding abilities are limited.
I have an interest in helping on the port to Qt5. I have never previously helped on an open-source github based development. I have experience with PyQt and have ported some of my Gui's from PyQt4 to PyQt5. I have experience with C, very little with C++. Question: can someone give me instructions on how best to get started to help out and not "re-invent the wheel" since it looks like a lot of the heavy lifting has already been done? I'm assuming I need to pull a particular github branch and work on a local copy? If so, I probably just need to know which branch? Thanks.
@kwmartin , thank you for the interest in project! The best way is to unfork Qucs-S and merge it with the main Qucs project. There exists so-called "modular Qucs" https://github.com/Qucs/qucs/tree/modular It already compiles with Qt5, but many things still be missing. The Qucs-S part is intended to be a plugin for basic Qucs. The most probably this approach will be accepted for future releases.
Unfortunatelly Qucs-S is not fully compatible with new modular architecture of the Qucs. Qucs-S was started a long tome before the modular architecture was introduced in the main project. It will be needed to port a code from Qucs-S to Qucs plugins manually and probably rewrite some parts from scratch. It is not possible to simple copy-paste the code responsible for netlisting and result processing from Qucs-S to modular Qucs. If you would like to help you may start from the learning of the "modular" branch in the main Qucs repository.
I am also considering to take this branch https://github.com/Qucs/qucs/tree/qt5-19 as the base for Qucs-S porting to Qt5.
Thanks Vadim, this is exactly what I was looking for. I am committed and plan on starting around mid week next week. There will be radio silence late January- early February while i get a sunburn, but if I set my laptop up well, I might be able to makesome progress in between catching rays. Thanks again, this really helps. Finally, is there any chance you tell me the flags cmake requires to compile for debug? (-g -O0 ?) and finally, finally, can you point to the file and function where the net-lister is entered that I need to set up a gdb breakpoint to start stepping my way through the netlister. Thanks again.
On 2/4/22 16:31, Vadim Kusnetsov wrote:
@kwmartin https://github.com/kwmartin , thank you for the interest in project! The best way is to unfork Qucs-S and merge it with the main Qucs project. There exists so-called "modular Qucs" https://github.com/Qucs/qucs/tree/modular It already compiles with Qt5, but many things still be missing. The Qucs-S part is intended to be a plugin for basic Qucs. The most probably this approach will be accepted for future releases.
Unfortunatelly Qucs-S is not fully compatible with new modular architecture of the Qucs. Qucs-S was started a long tome before the modular architecture was introduced in the main project. It will be needed to port a code from Qucs-S to Qucs plugins manually and probably rewrite some parts from scratch. It is not possible to simple copy-paste the code responsible for netlisting and result processing from Qucs-S to modular Qucs. If you would like to help you may start from the learning of the "modular" branch in the main Qucs repository.
I am also considering to take this branch https://github.com/Qucs/qucs/tree/qt5-19 as the base for Qucs-S porting to Qt5.
— Reply to this email directly, view it on GitHub https://github.com/ra3xdh/qucs_s/issues/32#issuecomment-1030364720, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQ55BJJ66MCFCWRKQI2PSTUZRARRANCNFSM4KORR3PQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>
-- www.granitesemi.com Mobile: +1 (416) 897-1840
Hello Kenneth,
Finally, is there any chance you tell me the flags cmake requires to compile for debug?
you should pass the -DCMAKE_BUILD_TYPE=Debug
key to cmake to ensure debug-mode. This options will activate the necessary flags for GCC. Also I recommend to open the CMakeLists.txt
in QtCreator where you can activate Debug mode and set installation prefix etc.
can you point to the file and function where the net-lister is entered that I need to set up a gdb breakpoint to start stepping my way through the netlister
The spice-related code is located in the followind subdirectories:
qucs/extsimkernels
-- the netlisters and result parsersqucs/spicecomponents/
-- specific devicesThe entry point for the netlister is Ngspice::createNetlist()
. The simulator is started from Ngspice::slotSimulate()
. Both methods are defined in the ngspice.cpp
file. The same for Xyce, but defined in xyce.cpp
. The ExternSimDialog::slotProcessOutput
is responsible for SPICE raw file (simulation result) processing. Some netlisitng routines common for all SPICE simulators are placed in AbstractSpiceKernel
class.
I have recently evaluated the "modular" and latest "non-modular" Qucs branches that could be compiled with Qt5. Now I am more inclined to take the non-modular https://github.com/Qucs/qucs/tree/qt5-19 as the base for Qucs-S porting. This approach will allow to directly copy the SPICE specific code in the source tree and provide some operational application in the near future.
Hello all,
I have recently started the porting of Qucs-S to Qt5. I have imported the necessary compatibility classes from the Qt3Support module of the Qt4. This is not a good way to implement Qt5 support, but it will allow to compile Qucs-S on modern distributions and build the packages in the near future instead of usage AppImage. The code could be found in the https://github.com/ra3xdh/qucs_s/tree/qt5 branch. The proxy classes are located in the qucs/qt3_compat
subdirectory. Currently only qucs-s
application (sources located in qucs
subdirectory) compiles with Qt5, but it is 90% of work. The basic features of schematic editor, simulation, and vizualization are operational. It remains to port utilities and fix bugs. I hope to finish work within next months and prepare 0.0.23
release. The attached screenshot shows the main window of the Qucs-S application compiled with Qt5.
@kwmartin You can use the https://github.com/ra3xdh/qucs_s/tree/qt5 branch as the reference for your work. Currently it could be compiled and run with Qt5. The utilities are not ported to Qt5 yet. Your contribution is welcome.
See also https://github.com/ra3xdh/qucs_s/issues/72 to track the progress and report issues
The master
and current
branches are switched to Qt5 now. The qt5
branch is not in use anymore. The legacy Qt4 code could be found in legacy_qt4
branch. I am closing this issue. Refer to #72 to track the remaining Qt5 migration tasks.
Quick test confirms master
build and run fine on FreeBSD :-)
THANK YOU @ra3xdh !! :-)
There are any plans to switch from qt4 to qt5?