| Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date | |
| All threads index page 2 | |
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 ]
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 ]
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 ]
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 ]