oops forgot to send to list...
________________________________ From: Chris Morley <[email protected]> Sent: November 22, 2017 11:28 AM To: [email protected] Subject: Re: [Emc-developers] linuxcnc VCP Discussions Hi Mick From: [email protected] <[email protected]> > There is a possibility to port over machinekits whole QML VCP project. Not quite as simple as that unfortunately. > It uses machinetalk and protobuf messaging which replaces NML in many > places. > A lot of the HAL stuff has changed also. > You could probably use Cetus as a standalone, but I personally would not > touch QML. > It abstracts stuff the the point of unintelligibility and the process > for creating > a panel is not simple, as witnessed by the number of demos trying to > show that it is. Thanks for the reality check :) > IMHO the core problem is not *vcp, it is Axis and gtk. > Gremlin can be embedded in a Qt window and is still a very capable > plotter/previewer. > With some minor tweaks, gremlin still works fine embedded into Qt5.9 and > Debian Stretch. > If you had a GUI which is Qt based, (whether pyQt or C++) the process of > getting a Qt based vcp to integrate with it is childs play, > by comparison to getting something else to play nicely with gtk2. Yes I have done this - gremlin is embedded in pyqt - it works surprisingly well. > > > I feel c or c++ as the base language is not the best choice for a widget > based VCP project. > > I feel it severely limits the number of people who can and will develop on it. > The Designer widget libraries are by necessity written in C++, but the > widgets once written can be used in Designer > by pyQt > The number of people wanting to develop actual widgets as opposed to > panels, is liable to be limited to those who can or have a special need. Widgets can be made with python as well. There is an included library to load python based widgets. So c++ or python widgets can be used in a panel or screen. But using python for the infrastructure allows a much lower bar for someone to build a new widget or a new screen. I'm pretty sure Gmoccapy would not have been made if C or C++ was the language. > > I think if we can find away to replace gremlin that converting gladeVCP to > GTK3 is worthwhile - > > a lot of work has gone into making it and it works pretty darn well. > > > I think the qtvcp project is worthwhile and I think QT has a lot of momentum > and probably the future. > The problem that Linuxcnc has with Qt, is only supporting obsolete lib > versions, because your distros > do not support the later versions. > So long as you have to support rtai kernels, with all the difficulty of > building and kernel specific limitations, this is likely to remain a > problem. It seems (to me) RTAI support is just about over. luckily RT kernels seem just fine for everything but parallel port stepping. Linuxcnc tends to be conservative for sure. > Qt is on 5.9.2 at present. > Debian Stretch has got as far as about 5.7.1 in its packages. Jessie is > at 5.3.2, but does not install it by default, still using Qt4. > Machinekit has packages for Stretch and Jessie. Looks (to me) linuxcnc is looking to support stretch next. Mint (what i prefer) is using 5.5.1 > If you write everything in Qt4, you will later have to port to Qt5 at > some stage and some things have changed considerably. > X embedding is an obvious example as per our previous discussions. Yes i did convert to python2 pyqt5 and the widgets worked fine. Designer did not unfortunately. And yes with your help I did successfully get gremlin embedded with qt5 too. In fact I have a very usable pyqt project in a branch. It needs polish, more widgets and I nicely finished screen yet, but you can run a sim machine with it. > Qt5 has a facility now to create widgets 'on-the-fly' at runtime from > designer .ui files > http://doc.qt.io/qt-5/quiloader.html QUiLoader Class | Qt UI Tools 5.9<http://doc.qt.io/qt-5/quiloader.html> doc.qt.io Detailed Description. The QUiLoader class enables standalone applications to dynamically create user interfaces at run-time using the information stored in UI files ... > QUiLoader Class | Qt UI Tools 5.9 > doc.qt.io > Detailed Description. The QUiLoader class enables standalone applications to > dynamically create user interfaces at run- > time using the information stored in UI files > I have used this successfully to create a C++ qtvcp system I called QtPanel. > This creates the panel, parses the .ui file and creates pins and > slot/signal mechanisms to service the widgets and connect to HAL. > That second bit is similar to what you did in python and I implemented > in C++ quite some years ago, when looking at this. Interesting development there. that eliminates the having-to-compile drawback but, still leaves the harder to code custom stuff drawback. Thanks you for all the information Mick. Chris M ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
