crossplatform.ru

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

> Плагин для QtDesigner, Custom widget
0xF
  опции профиля:
сообщение 18.3.2008, 11:32
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 71
Регистрация: 12.11.2007
Пользователь №: 20

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




Репутация:   0  


Не работает... похоже, что мой плагин QtDesigner даже не грузит :(

Header:
class cFoldoutPlugin : public QObject, public QDesignerCustomWidgetInterface
{
    Q_OBJECT
    Q_INTERFACES( QDesignerCustomWidgetInterface )

private:

    bool                initialized;

public:

                        cFoldoutPlugin( QObject *parent = 0 );

    virtual QString        name() const;
    virtual QString        group() const;
    virtual QString        toolTip() const;
    virtual QString        whatsThis() const;
    virtual QString        includeFile() const;
    virtual QIcon        icon() const;
    virtual bool        isContainer() const;
    virtual QWidget*    createWidget(QWidget *parent);
    virtual bool        isInitialized() const;
    virtual void        initialize(QDesignerFormEditorInterface *core);
};


Code:
cFoldoutPlugin::cFoldoutPlugin( QObject *parent ) : QObject( parent ) {
    initialized = false;
}

void cFoldoutPlugin::initialize(QDesignerFormEditorInterface * /* core */)
{
    MessageBox( 0, 0, 0, 0 ); // ** Для проверки, загрузился ли плагин. Сообщение не появляется :(
    if( initialized )
        return;

    initialized = true;
}

bool cFoldoutPlugin::isInitialized( void ) const {
    return initialized;
}

QWidget *cFoldoutPlugin::createWidget( QWidget *parent ) {
    return new QFoldout( parent );
}

QString cFoldoutPlugin::name( void ) const {
    return QLatin1String( "QFoldout" );
}

QString cFoldoutPlugin::group( void ) const {
    return QLatin1String( "Containers" );
}

QIcon cFoldoutPlugin::icon( void ) const {
    return QIcon();
}

QString cFoldoutPlugin::toolTip( void ) const {
    return "";
}

QString cFoldoutPlugin::whatsThis( void ) const {
    return "";
}

bool cFoldoutPlugin::isContainer( void ) const {
    return false;
}

QString cFoldoutPlugin::includeFile() const {
    return "QFoldout.h";
}

Q_EXPORT_PLUGIN2( QFoldoutPlugin, cFoldoutPlugin ) // ** Может тут я чо-то не то написал?


.pro(переделал файл из примеров)
CONFIG      += designer plugin debug_and_release
TARGET      = $$qtLibraryTarget($$TARGET)
TEMPLATE    = lib
QTDIR_build:DESTDIR     = $$QT_BUILD_TREE/plugins/designer

HEADERS     = QFoldout.h \
              FoldoutPlugin.h
SOURCES     = QFoldout.cpp \
              FoldoutPlugin.cpp

# install
target.path = $$[QT_INSTALL_PLUGINS]/designer
sources.files = $$SOURCES $$HEADERS *.pro
sources.path = $$[QT_INSTALL_EXAMPLES]/designer/customwidgetplugin
INSTALLS += target sources


Потом скармливаю этот .pro qmake, скопировал в папку с плагином nmake & cl запускаю nmake без аргуметов получаю две ошибки:
Цитата
ERROR: cl.exe return code 0xc0000135
ERROR: nmake.exe return code 0x2


Попробовал собрать в студии, закинул туда исходники + moc файлы(то ли qmake сделал, то ли nmake...) - собралось, положил .dll в папку /Qt4.3.0/plugins/designer В результате моего виджета в дизайнере нету :(

Чо делать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 19.4.2024, 12:35