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