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

Reply via email to