Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ QScintilla + Qt

Автор: Litkevich Yuriy 26.1.2009, 0:02

вот все что я накопал применительно к MDI (переделаный http://www.forum.crossplatform.ru/index.php?showtopic=675&view=findpost&p=13261):

проблемы компиляции при приведении типа: YSciTEW *child = qobject_cast<YSciTEW *>(windows.at(i)->widget());
решаются сравнительно просто, добавлением макроса Q_OBJECT в объявление класса YSciTEW

Однако далее линковка завершается с ошибкой:

build/objd/mainwindow.o: In function `ZN17QForeachContainerI5QListIP13QMdiSubWindowEEC1ERKS3_':
h:/Qt/4.3.5_shared/include/QtCore/../../src/corelib/kernel/qobject.h:
(.text$_Z12qobject_castIP7YSciTEWET_P7QObject[YSciTEW* qobject_cast<YSciTEW*>(QObject*)]+0x23):
  undefined reference to `YSciTEW::staticMetaObject'
build/objd/yscitew.o: In function `ZN7YSciTEWC2EP7QWidget':
D:/tempData/mdi/yscitew.cpp:10: undefined reference to `vtable for YSciTEW'
D:/tempData/mdi/yscitew.cpp:10: undefined reference to `vtable for YSciTEW'
build/objd/yscitew.o: In function `ZN7YSciTEWC1EP7QWidget':
D:/tempData/mdi/yscitew.cpp:10: undefined reference to `vtable for YSciTEW'
D:/tempData/mdi/yscitew.cpp:10: undefined reference to `vtable for YSciTEW'
build/objd/yscitew.o: In function `ZN5QListI7QStringE5beginEv':
h:/Qt/4.3.5_shared/include/QtCore/../../src/corelib/tools/qlist.h:
(.text$_ZN7YSciTEW2trEPKcS1_[YSciTEW::tr(char const*, char const*)]+0x1c):
  undefined reference to `YSciTEW::staticMetaObject'
collect2: ld returned 1 exit status


я пологаю виной тому объявление конструктора:
explicit QsciScintillaBase(QWidget *parent = 0);

т.к. граф наследования выглядит следующим образом:
YSciTEW -> QsciScintilla -> QsciScintillaBase -> QAbstractScrollArea -> QFrame -> QWidget -> (QObject and QPaintDevice)

на QsciScintillaBase все останавливается, если я правильно понимаю

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)