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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Путаница с параметрами макросов определённых в QtPlugin  (Прочитано 2776 раз)
nono
Гость
« : Ноябрь 02, 2009, 15:46 »

Разбираясь с плагинами ..... озадачился вот че....
Например про макрос Q_DECLARE_INTERFACE() в книжке Шлея написано что этот макрос должен иметь два параметра: первый - имя класса интерфейса, второй - строка идентификатора........
Строка идентификатора должна состоять из: домена создателя; имени приложения; имени интерфейса; номера версии. Но программа хорошо компилируется если опустить любой параметр (например имя приложения) или даже если строка идентификатора = ""(пустой строке) так для чего же нужна это строка и какие насамом деле параметры для неё важны и зачем???

Также не разобрался с макросом Q_EXPORT_PLUGIN2(PluginName, ClassName)....
Второй параметр верно, должен быть именем класса расширения, но вот первым параметров можно указывать что угодно (произвольную строку) и тоже всё нормально компилится и работает.....а ещё чем отличается этот макрос от макроса Q_EXPORT_PLUGIN (ClassName), я и его подставлял всё вроде бы работает.....хотелось бы знать в чём отличие.....и для чего применять....
Ну и последний макрос... как я понимаю противоположность Q_EXPORT_PLUGIN() макрос Q_EXPORT_PLUGIN (ClassName)  что это и куда его засовывать.......пример если можно?Непонимающий

Так же если можно подскажите как можно задавать сигналы и слоты в расширениях.....т.е. если допустим я хочу отправлять сигнал с одного плагина а принимать этот сигнал другим.......у меня есть одна идея правда я щас только собираюсь попробовать....выглядит 
она примерно так......сигналы я объявляю в интерфейсе.....а вот слоты можно объявить как чисто виртуальные в том же интерфейсе (но как я слышал виртуальные слоты работают медленнее) думаю можно ещё объявить слот в интерфейсе и определить его там же..... Если кто то знает конкретное решение этой проблемы пожалуйста поделитесь........
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Ноябрь 02, 2009, 16:32 »

Цитировать
Так же если можно подскажите как можно задавать сигналы и слоты в расширениях.....т.е. если допустим я хочу отправлять сигнал с одного плагина а принимать этот сигнал другим.......у меня есть одна идея правда я щас только собираюсь попробовать....выглядит
она примерно так......сигналы я объявляю в интерфейсе.....а вот слоты можно объявить как чисто виртуальные в том же интерфейсе (но как я слышал виртуальные слоты работают медленнее) думаю можно ещё объявить слот в интерфейсе и определить его там же..... Если кто то знает конкретное решение этой проблемы пожалуйста поделитесь........

А по-моему никак не получится...  единственный выход - это возвращать из плагина объект (класс), методы и сигналы которого заранее объявлены в хедере (типа базового класса)...

Тут на форуе уже были похожие темы (по крайней мере от меня Улыбающийся ), поищи, может чо и найдеш.. , а когда найдешь - отпишись Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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