Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: DiamondRain от Декабрь 07, 2010, 17:58



Название: Не отображается пользовательский виджет.
Отправлено: DiamondRain от Декабрь 07, 2010, 17:58
Создал плагин с элементарным интерфейсом (кнопка и лейбл). В Qt-дизайнере плагин появляется, я его добавляю на форму, однако при запуске мой плагин не отображается. В то же время я кидал на ту же форму плагин из экзамплов. Он отображается.
Код моего плагина:

pro:
Код:
CONFIG      += designer plugin debug_and_release
TARGET      = $$qtLibraryTarget(asdasdplugin)
TEMPLATE    = lib

HEADERS     = asdasdplugin.h
SOURCES     = asdasdplugin.cpp
RESOURCES   = icons.qrc
LIBS        += -L.

target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS    += target

include(asdasd.pri)


asdasdplugin.cpp:

Код:
#include "asdasd.h"
#include "asdasdplugin.h"

#include <QtCore/QtPlugin>

AsdasdPlugin::AsdasdPlugin(QObject *parent)
    : QObject(parent)
{
    m_initialized = false;
}

void AsdasdPlugin::initialize(QDesignerFormEditorInterface * /* core */)
{
    if (m_initialized)
        return;

    // Add extension registrations, etc. here

    m_initialized = true;
}

bool AsdasdPlugin::isInitialized() const
{
    return m_initialized;
}

QWidget *AsdasdPlugin::createWidget(QWidget *parent)
{
    return new Asdasd(parent);
}

QString AsdasdPlugin::name() const
{
    return QLatin1String("Asdasd");
}

QString AsdasdPlugin::group() const
{
    return QLatin1String("");
}

QIcon AsdasdPlugin::icon() const
{
    return QIcon();
}

QString AsdasdPlugin::toolTip() const
{
    return QLatin1String("");
}

QString AsdasdPlugin::whatsThis() const
{
    return QLatin1String("");
}

bool AsdasdPlugin::isContainer() const
{
    return false;
}

QString AsdasdPlugin::domXml() const
{
    return QLatin1String("<widget class=\"Asdasd\" name=\"asdasd\">\n</widget>\n");
}

QString AsdasdPlugin::includeFile() const
{
    return QLatin1String("asdasd.h");
}

Q_EXPORT_PLUGIN2(asdasdplugin, AsdasdPlugin)

Кстати, всплывающая подсказка для него работает, когда навожу курсор в его область.