在QPixmap

时间:2015-05-27 18:55:39

标签: c++ qt qpainter qpixmap

我正在尝试创建一个可以制作点图形的类。该类继承自QWidget。我希望它在QPixmap上绘制线条和点,这些线条和点将显示在QLabel中。

该类的构造函数如下所示:

MyClass::MyClass()
{
    calcul_proprietes(); // Function that makes calculation of what to draw.
    pix = new QPixmap(760,350);

    dessiner_graphique(); // Function that does the drawing.

    //Displaying the qpixmap
    layout_principal = new QVBoxLayout(this);
    label_pix = new QLabel(this);
    label_pix->setPixmap(*pix);
    layout_principal->addWidget(label_pix);
    this->setLayout(layout_principal);
}

执行绘图的函数的一小部分

void MyClass::dessiner_graphique()
{
    // ...
    QPainter painter(pix);
    QRect contour(x_depart,y_depart,largeur_grille,hauteur_grille);
    painter.drawRect(contour);
    // ...
}

我不想使用paintEvent函数,因为它一直被调用,我只需要绘制一次我的图形。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您是否在类构造函数之前调用了默认的基类构造函数?

MyClass( QObject *parent )
: QWidget( parent )
{
    // Your posted code.
}