При нажатии на кнопке основной формы создаю окно и хочу нарисовать на нем линию по диагонали на весь экран:
QWidget *widget = new QWidget(0);
QPalette p(widget->palette());
p.setColor(QPalette::Background, Qt::white);
widget -> setPalette(p);
QShortcut *shortcut = new QShortcut(QKeySequence("Esc"), widget);
connect(shortcut, SIGNAL(activated()), widget, SLOT(close()));
QRect scrgeom = QApplication::desktop() -> screenGeometry();
int ymax = scrgeom.height();
int xmax = scrgeom.width();
QPainter painter(widget);
QPen pen(Qt::black);
pen.setStyle(Qt::SolidLine);
pen.setWidth(10);
painter.setPen(pen);
painter.drawLine(0, 0, xmax, ymax);
widget -> setCursor(QCursor( Qt::BlankCursor ));
widget -> showFullScreen();
Окно создается, но вот линии на нем нет. Если заранее создать класс для widget и в нем определить paintEvent с рисованием линий, то, как я понимаю, все будет нормально перерисовываться. А без создания класса для виджета нельзя обойтись? Как-нибудь определить в моем коде widget->paintEvent и указать функцию, которая будет обрабатывать перерисовку?