Всем привет!
Недавно начал использовать ArthurFrame! Классная вещь- качественная прорисовка без мерцаний и несильно нагружает проц.
Но руки оказались недостаточно прямыми :oops:
1.
class Renderer : public ArthurFrame {
QBasicTimer timer;
void paint(QPainter* painter){/* ...something... */}
void timerEvent(QTimerEvent* e){repaint();}
// something else...
};
class MyWidget : public QWidget {
Renderer* myRenderer;
// something else...
};
// остальное непринципиально
Это в точности такое использование, как в примерах Qt. Естесвенно, все получается нормально.
Но попробовав организовать чуть-чуть по другому:
2.
class Renderer : public ArthurFrame {
void paint(QPainter* painter){/* ...something...*/}
// something else...
};
class MyWidget : public QWidget {
Renderer* myRenderer;
public:
void paintQuickly(){myRenderer->repaint();}
// something else....
};
class MyThread : public QThread {
MyWidget* widget;
void run(){
while(true){
widget->repaintQuickly();
msleep(100);
}
}
};
И вот во втором случае все очень плохо, фрейм перерисовывается с сильными подергиваниями, причем дергается весь фрейм(окно верхнего уровня) вместе с заголовком, хотя ему вроде бы и не приказывали перерисовываться. Да и чем отличается второй вариант от первого? Не вижу разницы... :cry: :cry: :cry:
Но ведь она должна быть! Видимо где-то очень тривиальный момент, который я упустил.... Помогите, кто может...