LINUX.ORG.RU

проблема с Qt


0

1

Не пойму в чем проблема, если не инициализировать 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();
}

Ответ на: комментарий от nexus86

а просто по-старинке писать point_x = 0 в конструкторе не пробовал? :)
И теперь у тебя осталось упоминание point_y вместе с point_x

nu11 ★★★★★ ()
Ответ на: комментарий от nu11

пробовал, так же вылетает

И теперь у тебя осталось упоминание point_y вместе с point_x

не понял

nexus86 ()

А это точно весь код? Может у тебя конфликт имен/типов идет на point_y?
И с какой ошибкой то вылетает?

zJes ★★ ()

Думаю два int point_* можно заменить на один QPoint, а вообще приведенный код, после правки Y23 на point_y абсолютно работоспособен.

m0rph ★★★★★ ()
Ответ на: комментарий от Led

Хоть до переустановки венды дело не дошло...

и генту...

nexus86 ()
Ответ на: комментарий от nexus86

>он был описан, это я уже менял думал может имя не нравится.

приведи актуальный код, а не эту хню

golodranez ★★★★ ()
Ответ на: комментарий от nu11

> а просто по-старинке писать point_x = 0 в конструкторе не пробовал? :)

а списке инициализации тогда уж

Obey-Kun ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.