Множественное наследование QObject, QGraphicsPolygonItem |
Здравствуйте, гость ( Вход | Регистрация )
Множественное наследование QObject, QGraphicsPolygonItem |
lifrost |
22.3.2011, 15:07
Сообщение
#1
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
Помогите разобраться с множественным наследование. Мне нужны сигналы/слоты в QGraphicsPolygonItem. Решил добавить второго предка QObject:
Ругается, пишет "undefined reference to 'vtable for WindowItem' ". Как быть? |
|
|
abc |
22.3.2011, 15:27
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
гуглить тоже надо)
тут, в конце http://www.prog.org.ru/topic_10329_0.html WindowItem(QGraphicsItem *parent, QGraphicsScene *scene); передавать итему указатель на сцену нет надобности у итема есть метод: QGraphicsItem::scene () Сообщение отредактировал abc - 22.3.2011, 15:33 |
|
|
Алексей1153 |
23.3.2011, 7:29
Сообщение
#3
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Ругается, пишет "undefined reference to 'vtable for WindowItem' ". когда у меня такая ошибка вылезала (а именно, она вылезала в момент добавления нового класса, производного от QObject и именно как реакция на появление в классе макроса Q_OBJECT), то помогало лишь сделать изменения в файле *.pro (можно просто напечатать пробел, потом его стереть). Затем сборка проходит удачно |
|
|
lifrost |
23.3.2011, 9:29
Сообщение
#4
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
гуглить тоже надо) тут, в конце http://www.prog.org.ru/topic_10329_0.html WindowItem(QGraphicsItem *parent, QGraphicsScene *scene); передавать итему указатель на сцену нет надобности у итема есть метод: QGraphicsItem::scene () Убрал указатель на счену (и в правду он там не обязателен). Но что-то на счет множественного наследования не получается (( сделал вот так:
Пишет: "invalid conversion from QObject to int", "initializing argument 1 of QPolygonF::QPolygonF(int)" |
|
|
PAFOS |
23.3.2011, 9:44
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
Может побольше кода предоставишь?
|
|
|
lifrost |
23.3.2011, 9:52
Сообщение
#6
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
Может побольше кода предоставишь? // .h
// .cpp
|
|
|
abc |
23.3.2011, 10:27
Сообщение
#7
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
WindowItem::WindowItem(QObject *p, QGraphicsItem *parent) : QGraphicsPolygonItem(p, parent) Я бы убрал QObject из конструктора, суть здесь ведь в том, чтобы добавить родителя, вот у тебя графикитем может быть родителем а компилятор выдал ошибку потому что: : QGraphicsPolygonItem(p, parent) - такого конструктора у полигона просто нет компилятор находит его конструктор с двумя аргументами, и он звучит так: QGraphicsPolygonItem ( const QPolygonF & polygon, QGraphicsItem * parent = 0 ) и он не может передать указатель на QObject туда, где речь о QPolygonF Сообщение отредактировал abc - 23.3.2011, 10:30 |
|
|
lifrost |
23.3.2011, 10:33
Сообщение
#8
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
WindowItem::WindowItem(QObject *p, QGraphicsItem *parent) : QGraphicsPolygonItem(p, parent) Я бы убрал QObject из конструктора, суть здесь ведь в том, чтобы добавить родителя, вот у тебя графикитем может быть родителем а компилятор выдал ошибку потому что: : QGraphicsPolygonItem(p, parent) - такого конструктора у полигона просто нет компилятор находит его конструктор с двумя аргументами, и он звучит так: QGraphicsPolygonItem ( const QPolygonF & polygon, QGraphicsItem * parent = 0 ) и он не может передать указатель на QObject туда, где речь о QPolygonF =) все гениальное просто. Всем спасибо - все работает! Тема закрыта. |
|
|
Текстовая версия | Сейчас: 21.12.2024, 19:34 |