Ich Subklassen QProgressBar in einem benutzerdefinierten Widget, und ich überschrieb die paintEventO Methode mit dem folgenden Code:qt Probleme zwingende paintEventO
void myProg::paintEvent(QPaintEvent *pe)
{
QProgressBar::paintEvent(pe);
QRect region = pe->rect();
QPainter *painter = new QPainter(this);
QPen *pen = new QPen;
painter->begin(this);
painter->setBrush(Qt::red);
int x = this->x();
int y = this->y();
pen->setWidth(10);
painter->setPen(*pen);
painter->drawLine(x,y,x+100,y);
painter->end();
}
Ich versuche, eine rote Linie angezeigt werden, als Ausgang Punkt, um zu sehen, dass ich meine eigenen Änderungen zum Widget hinzufügen kann. Dies funktioniert jedoch nicht. Ich sehe das Widget nur als reguläre QProgressBar. Irgendwelche Ideen, was könnte falsch sein?
Ist es möglich, ein Debug-Flag von einigen Arten zu setzen, die sagen, wenn etwas auf dem Bildschirm angezeigt wird oder nicht? – Geo
Geo: Ich glaube nicht, dass es ein Debug-Flag gibt. Es gibt einige Dinge, die Sie tun können, wenn Sie befürchten, dass dies in Zukunft ein Problem sein könnte. Sie können versuchen, z.B. Zeichnen Sie eine große rote Box über Ihr Widget von -10000, -10000 bis 10000, 10000 in der Hoffnung, dass Sie etwas sehen, und ändern Sie dann Ihren Code, bis Sie keine Ausgabe mehr sehen können. Sie können auch versuchen, den Clipping-Bereich oder den Clipping-Pfad aus dem QPainter zu erhalten und deren umgrenzende Rechtecke auszudrucken, um zu prüfen, ob die Koordinaten nahe an dem liegen, was Sie denken. – Doug