Cruz
17th January 2012, 22:17
Is it not possible to change the font twice during a paintEvent()? The following minimal example causes an infinite loop of paintEvent()s, if the font is changed twice. If I comment any of the setFont() lines out, it works fine.
class FontRepaint : public QWidget
{
Q_OBJECT
public:
FontRepaint(QWidget *parent = 0);
~FontRepaint(){};
protected:
void paintEvent(QPaintEvent*);
};
FontRepaint::FontRepaint(QWidget *parent)
: QWidget(parent)
{
}
void FontRepaint::paintEvent(QPaintEvent*)
{
qDebug() << "repaint";
setFont(QFont("Helvetica", 18));
setFont(QFont("Helvetica", 14));
}
class FontRepaint : public QWidget
{
Q_OBJECT
public:
FontRepaint(QWidget *parent = 0);
~FontRepaint(){};
protected:
void paintEvent(QPaintEvent*);
};
FontRepaint::FontRepaint(QWidget *parent)
: QWidget(parent)
{
}
void FontRepaint::paintEvent(QPaintEvent*)
{
qDebug() << "repaint";
setFont(QFont("Helvetica", 18));
setFont(QFont("Helvetica", 14));
}