Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 2

Qt-interest Archive, July 2007
hi all, just a doubt about porting openGL application from qt-4.1.0 to qt-4.3.0


Message 1 in thread

Hi all,
I have an application perfectly runnung under linux on top of qt-4.1.0
I recompile such an application using qt-4.3.0 and the rebuilding process ends 
successfully.
When I run the application I get the message:
QWidget::repaint: Recursive repaint detected

this message is only in 
src/gui/painting/qbackingstore.cpp

why this changing of behaviour?

Thanks a lot in advance.




-- 
 [ signature omitted ] 

Message 2 in thread

Hi,

> I have an application perfectly runnung under linux on top of qt-4.1.0
> I recompile such an application using qt-4.3.0 and the rebuilding process ends 
> successfully.
> When I run the application I get the message:
> QWidget::repaint: Recursive repaint detected
> 
> this message is only in 
> src/gui/painting/qbackingstore.cpp
> 
> why this changing of behaviour?

The code that emits this error message had always been there as far as I can 
see. It's not clear what is causing this change. Run the program in the 
debugger to find when and why this message is emitted (get the stack trace).

--
 [ signature omitted ] 

Message 3 in thread

I found the problem:

with qt-4.3.0 it is not allowed such an handler:

 void arnCompositeMatrixViewer::paintEvent ( QPaintEvent * event )
 {
 	if (pMatrix && pMatrix->isEnabled() && pMatrix->isShown()) {
 		pMatrix->repaintContents(true);
 		}
 	return arnObjectViewer::paintEvent(event);
 }

with this header


class arnCompositeMatrixViewer : public arnObjectViewer
{
    Q_OBJECT

    private:
        QClipboard* pClip;
        int singlepointRow, singlepointCol;

    private slots:
        void doValueChange(int row, int col);
        void MatrixViewerButton_hndl(void);
        void Graph3DViewerButton_hndl(void);
        void Graph3DSelection_hndl(int start_row, int start_col,int end_row, int end_col);
        void ZLineEditTextChange_hndl(const QString& text);
        void SliceButton_hndl(void);
        void GraphSliceSelection_hndl(int start_row, int start_col,int end_row, int end_col);

    protected:
        QLabel* pComment;
  
  
        Q3Table *pMatrix;
        arnGLMatrixViewer* pGLMatrix;
        arnGLMultipleArrayViewer* pMultiVector;

....



Maybe could be usefull for other guys.

Cheers




Alle 10:17, martedì 10 luglio 2007, Fabio Giovagnini ha scritto:
> Hi all,
> I have an application perfectly runnung under linux on top of qt-4.1.0
> I recompile such an application using qt-4.3.0 and the rebuilding process
> ends successfully.
> When I run the application I get the message:
> QWidget::repaint: Recursive repaint detected
>
> this message is only in
> src/gui/painting/qbackingstore.cpp
>
> why this changing of behaviour?
>
> Thanks a lot in advance.

-- 
 [ signature omitted ] 
Message 4 in thread

On 16.07.07 14:31:17, Fabio Giovagnini wrote:
> I found the problem:
> 
> with qt-4.3.0 it is not allowed such an handler:
> 
>  void arnCompositeMatrixViewer::paintEvent ( QPaintEvent * event )
>  {
> 
> class arnCompositeMatrixViewer : public arnObjectViewer
> {
>     private slots:
>         void doValueChange(int row, int col);
>         void MatrixViewerButton_hndl(void);
>         void Graph3DViewerButton_hndl(void);
>         void Graph3DSelection_hndl(int start_row, int start_col,int end_row, int end_col);
>         void ZLineEditTextChange_hndl(const QString& text);
>         void SliceButton_hndl(void);
>         void GraphSliceSelection_hndl(int start_row, int start_col,int end_row, int end_col);

To the best of my knowledge an implementation for a method that is not
declared is not supported by C++, so your problem is not related to Qt.

Add a paintEvent-declaration to your arnCompositeMatrixViewer class and
you can have the implementation as well.

Andreas

-- 
 [ signature omitted ] 

Message 5 in thread

No Andreas, I know; of course;

I attached also the a part of .h file for making meaningfull the .cpp code 
fragment and its symbols.

Ciao


Alle 14:35, lunedì 16 luglio 2007, Andreas Pakulat ha scritto:
> On 16.07.07 14:31:17, Fabio Giovagnini wrote:
> > I found the problem:
> >
> > with qt-4.3.0 it is not allowed such an handler:
> >
> >  void arnCompositeMatrixViewer::paintEvent ( QPaintEvent * event )
> >  {
> >
> > class arnCompositeMatrixViewer : public arnObjectViewer
> > {
> >     private slots:
> >         void doValueChange(int row, int col);
> >         void MatrixViewerButton_hndl(void);
> >         void Graph3DViewerButton_hndl(void);
> >         void Graph3DSelection_hndl(int start_row, int start_col,int
> > end_row, int end_col); void ZLineEditTextChange_hndl(const QString&
> > text);
> >         void SliceButton_hndl(void);
> >         void GraphSliceSelection_hndl(int start_row, int start_col,int
> > end_row, int end_col);
>
> To the best of my knowledge an implementation for a method that is not
> declared is not supported by C++, so your problem is not related to Qt.
>
> Add a paintEvent-declaration to your arnCompositeMatrixViewer class and
> you can have the implementation as well.
>
> Andreas

-- 
 [ signature omitted ]