我在MainWindow下有个QScrollArea组件,现在想在这个组件里面实现绘图功能,主要就是画直线,画圆等基本功能。
实现方法是:再实现一个类(名字叫myscroll),这个类作为QScrollArea的子部件,重写该类的paintevent,但是一直画不出图。有没有高手,指点一下,怎么回事?
//这个是MainWindow的部分:
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setAutoFillBackground(true);
QScrollArea *scrollArea = new QScrollArea(this);
pmyscroll = new myscroll(scrollArea); // 写成new myscroll(this)也不行
scrollArea->setBackgroundRole(QPalette::Dark); // 设置背景色实际有效
this->setCentralWidget(scrollArea);
scrollArea->setWidget(pmyscroll);
this->showMaximized();
}
// myscroll部分
void myscroll::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPen pen;
pen.setStyle(Qt::SolidLine);
pen.setColor(Qt::blue);
painter.setPen(pen);
painter.drawLine(50,50,100,50);
}