Не пойму в чем проблема, если не инициализировать point_y в конструкторе то все работает, а если инициализировать, то программма вылетает с ошибкой.
class myDraw : public QWidget {
    Q_OBJECT
protected:
    int point_x,Y23;
    virtual void paintEvent(QPaintEvent*);
public:
    myDraw (QWidget* pwgt = 0);
public slots:
    void on_pushButton_clicked();
};
#include <QtGui>
#include "myDraw.h"
myDraw::myDraw(QWidget* pwgt):QWidget(pwgt),point_x(0),point_y(0)
{
    QPushButton* draw = new QPushButton("try");
    QObject::connect(draw,SIGNAL(clicked()),
                     SLOT(on_pushButton_clicked()));
    QHBoxLayout* phbxLayout = new QHBoxLayout;
    phbxLayout->addWidget(draw);
    setLayout(phbxLayout);
}
void myDraw::paintEvent(QPaintEvent *)
{
    QPainter p( this );
    p.setRenderHint(QPainter::Antialiasing,true);
    p.setPen(QPen(Qt::red,3,Qt::SolidLine));
    p.drawLine(QPointF(point_x,10),QPointF(10,500));
}
void myDraw::on_pushButton_clicked()
{
    point_x = 20;
    repaint();
}



