Hi Alan,

Sorry for not getting back with the previous suggestions of using only
Qt 4.5.x. Please find the my response to our previous conrespondences
detailed in the following sections.

Despite my problematic experience with Plplot, I think PLplot is
absolutely great! It's amazingly fast for my needs - even if I have to
redraw. However,I doubt the somewhat primative color schemes will
attract the average user (I have not tried changing the color maps
yet) - but who cares?! If this is fully integrated into QT, this can
definitely knock off Qwt and Qwt3D off the shelves!

I will say thanks at this point as the sections drag on a little and I
pasted error and warning messages at the end on the last sections.

Matt

# Realtime Plot ==================================================
I have tried your suggestions of using stripchart (stream =
plstream(); stream->stripc(...);). I have tried the following drivers:
- extqt
== Widget does not update. I have not tried plot = new QtExtWidget;
plot->update(); as I did not assume QtExtWidget inherit QWidget;
- qtwidget
== Widget does not update. Since it is a driver, I don;t really know
how to get its pointer to pysically do a QWidget::update();
- xwin / win
== This works great (although I have to drag its edges ocassionally to
get it to rescale properly). However, I can;t see to have both
stream->stripa() and stream->GetCursor() running at the same time as
the latter seems to take over completely and will not let me draw the
graph. I have tried pingponging the two threads running these two
functions with a conditional variable but couldn;t get it working
properly...

One question tho - I noticed that memory was creeping up as data was
added to the strip chart. I was not sure whether it was me or
Plplot...

I wouldn;t definitely be nice to have the strip chart to rescale wrt
the y-axis too! I have not looked into the c-file so will have a look
if I can do it with ease

# QT 4.5.0 
=======================================================================
I now have a new Linux box on which I only have QT 4.5.0. I have
compiled plplot on it and the same problem persists. I am guessing
it's due to the issues you highlighted.

# SVN Trunk ==================================================
I have not tired the trunk on Linux, but on Windows (MinGW, QT4.5.0)
"make" step failed due to the ERROR:
...\trunk\drivers\qt.cpp:44: error: variable `plD_DEVICE_INFO_qt'
definition is marked dllimport.

and a lot of WARNINGS:
...\trunk\drivers\qt.cpp: In member function `void
QtPLDriver::drawTextInPicture(QPainter*, const QString&)':
...\trunk\drivers\qt.cpp:340: warning: passing `double' for converting
2 of `void QPainter::drawPicture(int, int, const QPicture&)'
...\trunk\drivers\qt.cpp: In destructor `virtual QtPLWidget::~QtPLWidget()':
...\trunk\drivers\qt.cpp:1341: warning: non-inline function 'virtual
QtPLWidget::~QtPLWidget()' is defined after prior declaration as
dllimport: attribute ignored
...\trunk\drivers\qt.cpp: At global scope:
...\trunk\drivers\qt.cpp:1354: warning: non-inline function 'void
QtPLWidget::clearBuffer()' is defined after prior declaration as
dllimport: attribute ignored
...\trunk\drivers\qt.cpp:1354: warning: 'void
QtPLWidget::clearBuffer()' defined locally after being referenced with
dllimport linkage
...\trunk\drivers\qt.cpp: In member function `virtual void
QtPLWidget::drawLine(short int, short int, short int, short int)':
...\trunk\drivers\qt.cpp:1387: warning: non-inline function 'virtual
void QtPLWidget::drawLine(short int, short int, short int, short int)'
is defined after prior declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `virtual void
QtPLWidget::drawPolyline(short int*, short int*, PLINT)':
...\trunk\drivers\qt.cpp:1400: warning: non-inline function 'virtual
void QtPLWidget::drawPolyline(short int*, short int*, PLINT)' is
defined after prior declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `virtual void
QtPLWidget::drawPolygon(short int*, short int*, PLINT)':
...\trunk\drivers\qt.cpp:1417: warning: non-inline function 'virtual
void QtPLWidget::drawPolygon(short int*, short int*, PLINT)' is
defined after prior declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `virtual void
QtPLWidget::setColor(int, int, int, double)':
...\trunk\drivers\qt.cpp:1441: warning: converting to `PLINT' from `double'
...\trunk\drivers\qt.cpp:1434: warning: non-inline function 'virtual
void QtPLWidget::setColor(int, int, int, double)' is defined after
prior declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `virtual void
QtPLWidget::setSolid()':
...\trunk\drivers\qt.cpp:1447: warning: non-inline function 'virtual
void QtPLWidget::setSolid()' is defined after prior declaration as
dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `virtual void
QtPLWidget::setWidth(PLINT)':
...\trunk\drivers\qt.cpp:1454: warning: non-inline function 'virtual
void QtPLWidget::setWidth(PLINT)' is defined after prior declaration
as dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `virtual void
QtPLWidget::drawText(PLStream*, EscText*)':
...\trunk\drivers\qt.cpp:1462: warning: non-inline function 'virtual
void QtPLWidget::drawText(PLStream*, EscText*)' is defined after prior
declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `void
QtPLWidget::drawTextInPicture(QPainter*, const QString&)':
...\trunk\drivers\qt.cpp:1523: warning: passing `double' for
converting 2 of `void QPainter::drawPicture(int, int, const
QPicture&)'
...\trunk\drivers\qt.cpp: In member function `void
QtPLWidget::renderText(QPainter*, TextStruct_*, double, double,
double, double)':
...\trunk\drivers\qt.cpp:1543: warning: passing `double' for
converting 1 of `void QPainter::drawPicture(int, int, const
QPicture&)'
...\trunk\drivers\qt.cpp:1543: warning: passing `double' for
converting 2 of `void QPainter::drawPicture(int, int, const
QPicture&)'
...\trunk\drivers\qt.cpp: In member function `void QtPLWidget::nextPage()':
...\trunk\drivers\qt.cpp:1347: warning: non-inline function 'void
QtPLWidget::clearWidget()' is defined after prior declaration as
dllimport: attribute ignored
...\trunk\drivers\qt.cpp: At global scope:
...\trunk\drivers\qt.cpp:1624: warning: non-inline function 'void
QtPLWidget::doPlot(QPainter*, double, double, double, double)' is
defined after prior declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp:1624: warning: 'void
QtPLWidget::doPlot(QPainter*, double, double, double, double)' defined
locally after being referenced with dllimport linkage
...\trunk\drivers\qt.cpp: In member function `void
QtPLWidget::doPlot(QPainter*, double, double, double, double)':
...\trunk\drivers\qt.cpp:1528: warning: non-inline function 'void
QtPLWidget::renderText(QPainter*, TextStruct_*,double, double, double,
double)' is defined after prior declaration as dllimport: attribute
ignored
...\trunk\drivers\qt.cpp: At global scope:
...\trunk\drivers\qt.cpp:1702: warning: non-inline function 'void
QtPLWidget::getPlotParameters(double&, double&,double&, double&)' is
defined after prior declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp:1702: warning: 'void
QtPLWidget::getPlotParameters(double&, double&, double&, double&)'
defined locally after being referenced with dllimport linkage
...\trunk\drivers\qt.cpp: In function `void plD_init_qtwidget(PLStream*)':
...\trunk\drivers\qt.cpp:1328: warning: non-inline function
'QtPLWidget::QtPLWidget(int, int, QWidget*)' is defined after prior
declaration as dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In destructor `virtual QtExtWidget::~QtExtWidget()':
...\trunk\drivers\qt.cpp:1823: warning: non-inline function 'virtual
QtExtWidget::~QtExtWidget()' is defined after prior declaration as
dllimport: attribute ignored
...\trunk\drivers\qt.cpp: In member function `virtual void
QtExtWidget::paintEvent(QPaintEvent*)':
...\trunk\drivers\qt.cpp:1589: warning: non-inline function 'virtual
void QtPLWidget::paintEvent(QPaintEvent*)' is defined after prior
declaration as dllimport: attribute ignored
mingw32-make[2]: ***
[bindings/qt_gui/CMakeFiles/plplotqtd.dir/__/__/drivers/qt.cpp.obj]
Error 1
mingw32-make[1]: *** [bindings/qt_gui/CMakeFiles/plplotqtd.dir/all] Error 2
mingw32-make: *** [all] Error 2

as well as a few warnings about passing double as an int in the
functions QtPLWidget::setColor, drawPicture and drawTextInPicture



On Fri, Jun 19, 2009 at 7:04 PM, Alan W. Irwin<ir...@beluga.phys.uvic.ca> wrote:
> On 2009-06-16 16:21+0100 MaaTt wrote:
>
>> Dear all,
>>
>> I am totally new to plplot, so any advice is greatly appreciated.
>> Thank you all in advance (even reading the below)
>>
>> In brief, I am wondering if anyone can help me out by telling me
>> - why clearWidget crashes after pljoin is called;
>> - what plclear actually does;
>
> Hi Matt:
>
> I just discovered today that the qt device had the sense of dev_clear
> reversed.  From the plclear code in plpage.c, if the driver sets
> pls->dev_clear=1; then the device is called with PLESC_CLEAR to allow the
> device to handle plclear itself.  Otherwise, ff the driver sets
> pls->dev_clear=0, then a PLplot core fallback is used (overwrite the page
> with the background colour) which seems perfectly fine to me as a way to
> simulate clearing the (sub-)page.  Indeed, most drivers are content with
> this PLplot core fallback for clearing the page.  Only the wxwidgets device
> handles PLESC_CLEAR at this time, and pls->dev_clear=0 for all other devices
> (usually by default) except for qt.cpp.  That device inconsistently set
> pls->dev_clear=1 while not handling PLESC_CLEAR.  I have now (revision 10056
> in our svn trunk version) fixed that inconsistency bug by setting
> pls->dev_clear=0 throughout the qt device driver following what is done
> for most other device drivers.
>
> Will you please try the svn trunk version of Plplot to see if that solves
> your clear issues?
>
> You haven't yet replied to my suggestion of downloading a modern Qt4 version
> for your Linux platform. Does that suggestion solve the inconsistency you
> were getting between your Linux results with old Qt4 and your windows
> results with modern Qt4?
>
> Alan
> __________________________
> Alan W. Irwin
>
> Astronomical research affiliation with Department of Physics and Astronomy,
> University of Victoria (astrowww.phys.uvic.ca).
>
> Programming affiliations with the FreeEOS equation-of-state implementation
> for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
> package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
> Linux Links project (loll.sf.net); and the Linux Brochure Project
> (lbproject.sf.net).
> __________________________
>
> Linux-powered Science
> __________________________
>

------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
Plplot-general mailing list
Plplot-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-general

Reply via email to