Russian Qt Forum
Ноябрь 23, 2024, 04:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Интеграция виджета в QtDesiner  (Прочитано 4560 раз)
time.h
Гость
« : Март 13, 2011, 14:47 »

Здравствуйте.Возникла следующая проблема.
Написал простенький виджет,захотелось вставить его в Designer.
Описал подкласс QDesignerCustomWidgetInterface.Сложил все файлы в одну папку.Скомпилировалось все без ошибок,но виджет в дизайнере так и не появился.
Помогите пожалуйста.
*.pro-файл
Код:
TEMPLATE =lib
CONFIG             += designer plugin release
HEADERS           +=mybutton.h mybuttonplugin.h
SOURCES           +=mybutton.cpp mybuttonplugin.cpp
DESTDIR            =$(QTDIR)/plugins/designer

заголовочный файл подкласса QDesignerCustomWidgetInterface
Код:
#ifndef MYBUTTONPLUGIN_H
#define MYBUTTONPLUGIN_H

#include <QDesignerCustomWidgetInterface>

class MyButtonPlugin : public QObject, public QDesignerCustomWidgetInterface
{
    Q_OBJECT
    Q_INTERFACES(QDesignerCustomWidgetInterface)

public:
    MyButtonPlugin(QObject *parent = 0);

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

private:
    bool m_initialized;
};

#endif

Исходный код подкласса QDesignerCustomWidgetInterface
Код:
#include "mybutton.h"
#include "mybuttonplugin.h"
#include <QtCore/QtPlugin>

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

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

    // Add extension registrations, etc. here

    m_initialized = true;
}

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

QWidget *MyButtonPlugin::createWidget(QWidget *parent)
{
    return new MyButton(parent);
}

QString MyButtonPlugin::name() const
{
    return QLatin1String("MyButton");
}

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

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

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

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

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

QString MyButtonPlugin::domXml() const
{
    return QLatin1String("<widget class=\"MyButton\" name=\"myButton\">\n</widget>\n");
}

QString MyButtonPlugin::includeFile() const
{
    return QLatin1String("mybutton.h");
}

Q_EXPORT_PLUGIN2(mybuttonplugin, MyButtonPlugin)
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Март 14, 2011, 08:08 »

куда вставляешь, в креатор или внешний дизайнер? Чем собирал? Код правда не смотрел, мб и там ошибка:)
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Март 14, 2011, 09:01 »

Разработка плагинов QtDesigner
« Последнее редактирование: Март 14, 2011, 22:54 от ecspertiza » Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #3 : Март 14, 2011, 22:00 »

а по ссылочке ходить пробовал?
Записан

kubuntu/Win7/x64/NetBeans
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #4 : Март 14, 2011, 22:52 »

блин как не вставлю ссылку, хоть в теги хоть без форум ее постоянно меняет Улыбающийся толк тогда от тега url ?
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #5 : Март 14, 2011, 23:05 »

админ пока молчит
Записан

kubuntu/Win7/x64/NetBeans
time.h
Гость
« Ответ #6 : Март 15, 2011, 20:48 »

Наконец смог добраться до программирования.Сделал все заново как было в статье по ссылке.Все заработало.Правда ссылка выдавала не статью,а форум.Пришлось в ручную искать.За ссылочку спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 22.