Hi Chris,

On 22/11/17 01:44, Chris Morley wrote:
There was a discussion on IRC about linuxcnc's VCPs others maybe interested in


There is a hold up on porting gladeVCP from GTK2 to GTK3 -the gremlin 
(graphics) widget.

There was a project started to create a QT based VCP - QTvcp.


There is a possibility to port over machinkit's qt based live graphics view 
widget.

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.

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.



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.

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.

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.

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.

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

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.

Feel free to contact off list if you want more info

regards

Mick


------------------------------------------------------------------------------
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

Reply via email to