Я подклассы QProgressBar в пользовательском виджете, и я переписал в метод paintEvent со следующим кодом:кварты беды перекрывая paintEvent
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();
}
Я пытаюсь показать красную линию, как запуск чтобы увидеть, что я могу добавить свои собственные модификации в виджет. Однако это не работает. Я вижу только виджет как обычный QProgressBar. Любые идеи о том, что может быть неправильным?
Можно ли установить флаг отладки, который скажет, если что-то отображается на экране или нет? – Geo
Geo: Я не думаю, что есть флаг отладки. Есть несколько вещей, которые вы можете сделать, если беспокоитесь, что это может быть проблемой в будущем. Вы можете попробовать, например. нарисуйте большой красный ящик над вашим виджетами от -10000, -10000 до 10000, 10000, надеясь, что вы что-то увидите, а затем измените свой код, пока вы больше не сможете видеть выход. Вы также можете попробовать получить область отсечения или обтравочный путь из QPainter и распечатать их ограничивающие прямоугольники, проверяя, находятся ли координаты близко к тому, что вы думаете. – Doug