crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

lifrost
  опции профиля:
сообщение 22.3.2011, 15:07
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 4.3.2011
Из: Миасс
Пользователь №: 2468

Спасибо сказали: 0 раз(а)




Репутация:   0  


Помогите разобраться с множественным наследование. Мне нужны сигналы/слоты в QGraphicsPolygonItem. Решил добавить второго предка QObject:

class WindowItem : public QObject, public QGraphicsPolygonItem
{
    Q_OBJECT

public:
    WindowItem(QGraphicsItem *parent, QGraphicsScene *scene);

....
};


Ругается, пишет "undefined reference to 'vtable for WindowItem' ".

Как быть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
PAFOS
  опции профиля:
сообщение 23.3.2011, 9:44
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


Может побольше кода предоставишь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lifrost
  опции профиля:
сообщение 23.3.2011, 9:52
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 4.3.2011
Из: Миасс
Пользователь №: 2468

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(PAFOS @ 23.3.2011, 11:44) *
Может побольше кода предоставишь?


// .h
class WindowItem : public QObject, public QGraphicsPolygonItem
{
    Q_OBJECT

public:
    WindowItem(QObject *p=0, QGraphicsItem *parent=0);
    void setupPoint();
protected:
    // полигоны
    QPolygonF lPoly; 
    QPolygonF rPoly; 
    QPolygonF tPoly; 
    QPolygonF bPoly;
    QPolygonF packP;

    QPointF point1;
    QPointF point2;
    QPointF point3;
    QPointF point4;
    QPointF point5;
    QPointF point6;
    QPointF point7;
    QPointF point8;
};

class leftGlume : public WindowItem
{
    Q_OBJECT

public:
    leftGlume(QObject *p=0, QGraphicsItem *parent=0);
    void setupLG();
};


// .cpp

WindowItem::WindowItem(QObject *p, QGraphicsItem *parent) :
        QGraphicsPolygonItem(p, parent)
{
    QPen pen(Qt::black,1);
    setPen(pen);
    setupPoint();
}

void WindowItem::setupPoint()
{
    point1 = QPointF(500,100);
    point2 = QPointF(500,500);
    point3 = QPointF(480,480);
    point4 = QPointF(480,120);
    point5 = QPointF(120,480);
    point6 = QPointF(100,500);
    point7 = QPointF(120,120);
    point8 = QPointF(100,100);

}

leftGlume::leftGlume(QObject *p, QGraphicsItem *parent) : WindowItem(p, parent)
{
}

void leftGlume::setupLG()
{
    // left
    lPoly << point8;
    lPoly << point6;
    lPoly << point5;
    lPoly << point7;

    setPolygon(lPoly);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 3.6.2025, 23:08