Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: remach от Июля 03, 2007, 14:33



Название: Создание компонентов (QWidgetPlugin) для Designer (qt 3.3.3)
Отправлено: remach от Июля 03, 2007, 14:33
Занимаюсь созданием визуальных плагинов для Designer. Есть пара вопросов:

1) Как в компаненте определить создан он под дизайнером или уже готовое приложение?
2) Как сделать свою форму для редактирование компонента? (Например как для редактирования колонок в QTable по двойному клику выскакивает меню Edit Table )
2.1) Как сделать форму редактирования свойства?
3) Как принудительно сохранить свойство в файл или пометить его измененным (в дизайнере выделяется черным шрифтом)?

Буду весьма признателен за помощь.


Название: Re: Создание компонентов (QWidgetPlugin) для Designer (qt 3.3.3)
Отправлено: Mikhail от Января 11, 2008, 15:00
Занимаюсь созданием визуальных плагинов для Designer. Есть пара вопросов:

1) Как в компаненте определить создан он под дизайнером или уже готовое приложение?
2) Как сделать свою форму для редактирование компонента? (Например как для редактирования колонок в QTable по двойному клику выскакивает меню Edit Table )
2.1) Как сделать форму редактирования свойства?
3) Как принудительно сохранить свойство в файл или пометить его измененным (в дизайнере выделяется черным шрифтом)?

Буду весьма признателен за помощь.

Смотри пример - $(QTDIR)/examples/designer/taskmenuextension
Это пример из qt4.
Подобноенаверно есть и в qt3.


Название: Re: Создание компонентов (QWidgetPlugin) для Designer (qt 3.3.3)
Отправлено: gislinux от Января 28, 2008, 13:00
Я определяю этап дизайна через функцию QwidgetPlugin::create( const QString &key, QWidget* parent, const char* name )
Пример:
QWidget* QDMapComponentsPlugin::create( const QString &key, QWidget* parent, const char* name )
{
    if ( key == "QDMapView" )
    {
        QWidget* w = 0;

        printf("Этап дизайна!\т")
          w = new QDMapView( parent, name );
   
   return w;
    }
}