While ago - with caQtDM-3.8.9, I did some investigation on how to develop caQtDM-based widgets with caQtDM_Lib changes if possible. A prove-concept prototype was implemented to demonstrate a possible short-term solution. So the developers(e.g.
someone like Tim Mooney: aps.anl.gov) from the EPICS community could be much easy to create caQtDM-based widgets(include deriving from existing caQtDM widgets).
The caQtDM has been improved a lot since then (now up to version 4.0.2).
Before I forgot all that, I would like to put the idea together as a recommendation.
During last weekend, I merged my changes into caQtDM-4.0.2 for the concept demonstration only.
Hope it helps to promote your caQtDM framework further especially for SLAC and EPICS Qt in general.
Brief description below and one tar file Attached - a few existing files changed and two new interface files created
RE: EPICS CA Interface for caQtDM and epicsqt
"Mooney, Tim M." <email@example.com>
Zenon Szalata <firstname.lastname@example.org>,
Andrew Rhyder <Andrew.Rhyder@synchrotron.org.au>,
"Mezger Anton Christian (PSI)" <email@example.com>, "Williams
Jr., Ernest L." <firstname.lastname@example.org>
<email@example.com>, "Shankar, Murali" <firstname.lastname@example.org>,
"Babbitt, Alisha" <email@example.com>
Mon, 23 Mar 2015 21:18:01 +0000
For me, the advantage of having both caQtDM and epicsqt is that I can have a nearly exact replacement for MEDM, and also add custom widgets in an easily maintainable way. At least, I hope this is or
will be the case. Here's why:
I wrote a custom widget for caQtDM (to display 2D raster-scan data as they are acquired), and added it to several versions of caQtDM as they became available. It was great; I could never have done this
with MEDM. Now, I don't want to bother Anton Mezger with any additional maintenence that my widget might require, and it isn't ready for general distribution in any case. But adding a custom widget to each new release of caQtDM is a complicated and error
prone process, involving edits to nine sections of six caQtDM files, in addition to adding source files for the custom widget, and maybe editing them for compatibility with the new version of caQtDM. It's not going to be exactly the same edits every time,
of course, so some study is required in advance. Every time. I did it three times, and that's enough to persuade me to look for an alternative way to add custom epics-aware widgets.
What I would prefer is to be able to maintain my custom widget in my own repository, and use qt's native ability to include widgets from different sources into an application. This is what I think epicsqt's
widget model will enable me to do, though I'm not yet far enough up the learning curve to know that it will work or how to do it.
Tim Mooney (firstname.lastname@example.org) (630)252-5417
Software Services Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab
From: email@example.com [firstname.lastname@example.org] on behalf of Zenon Szalata [email@example.com]
Sent: Monday, March 23, 2015 2:07 PM
To: Andrew Rhyder; Mezger Anton Christian (PSI); Williams Jr., Ernest L.
Cc: firstname.lastname@example.org; Shankar, Murali; Babbitt, Alisha
Subject: Re: EPICS CA Interface for caQtDM and epicsqt
I have been using epicsQT for a number of years. My approach is to use
epicsQT widgets only when Channel Access is needed, for anything else I
use Qt widgets. Also, I did not find the QEGui display manager useful,
since I prefer to create well defined standalone applications.
The related display I implement with a Qt push button and a little C++
code around, which works perfectly well for me. I am using QEForm
widget the way I would use Embedded Window widget in EDM.
I have not looked at caQtDM, since I became aware of it some time after
I started using epicsQT. I wonder what is the advantage of combining
epicsQT and caQtDM? Perhaps caQtDM has some useful widgets which might
be missing in epicsQT? In my opinion, epicsQT is very well written and
reasonably complete and yet when I find it lacking, I just subclass my
own widget either from a Qt widget, QWT widget, or from an epicsQT
widget, to get what I need.
Now, my concern is that should epicsQT and caQtDM merge into one
package, then all my epicsQT based application would stop working. But
perhaps this kind of merger is not what is being contemplated.
Anyway, my 2 cents,