Comments (16)
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.
from qucs_s.
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.
from qucs_s.
Have you tried to compile and run qucs-s-0.0.22 with Qt5.x?
from qucs_s.
@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.
from qucs_s.
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.
from qucs_s.
+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? :-)
from qucs_s.
+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.
from qucs_s.
+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.
from qucs_s.
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.
from qucs_s.
@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.
from qucs_s.
from qucs_s.
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 devices
The 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.
from qucs_s.
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.
from qucs_s.
@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.
from qucs_s.
See also #72 to track the progress and report issues
from qucs_s.
Quick test confirms master
build and run fine on FreeBSD :-)
THANK YOU @ra3xdh !! :-)
from qucs_s.
Related Issues (20)
- Getting a .FUNC formula to produce data to plot HOT 6
- Qucs-s closes when closing the tuner with several parameters HOT 3
- Qucs-S user library portability HOT 1
- S-parameters from AC simulation HOT 1
- Implementing custom symbol/component libraries HOT 1
- .INCLUDE SCRIPT and .GLOBAL PARAM cause Qucs-S to crash HOT 1
- Qucs current source changed HOT 5
- compiling latest branch current HOT 2
- Create contributing guidelines HOT 3
- windows height HOT 5
- Spice resistor oddities HOT 1
- Configure picks Qt6 over Qt5 when both arfe available HOT 7
- Failed to Calculate DC bias HOT 2
- Does present version of qucs-s deprecate qucsator? HOT 2
- [24.1] wrong installer for Windows
- Example works 24.1.0 doesn't work 24.1.0+ HOT 3
- Lossless TLine netlist is wrong in some cases HOT 4
- Compare foundry measurements with model performances HOT 5
- RF component library HOT 11
- AppImage link not working HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qucs_s.