LINUX.ORG.RU

Несколько вопросов по QtScript

 , qplugin, , qtscript


0

1

Доброго!

Возникло пару вопросов по QtScript, но гугл не дал ничего толкового. С добавлением своих объектов в QScriptEngine разобрался без проблем. Но возникли проблемы с пониманием того, как работают QScriptExtension'ы. Может кто видел толковый туториал или готовое расширение и его применение в движке?

Новый функционал хотелось бы добавлять через плагины (QPlugin). Он же должен быть доступен и для скриптового движка. Хотелось бы все это иметь в одном файле (libmyplugin.so) Как их объединить? Как сделать отдельно плагин для qt и плагин для QtScript я разобрался, но так получается 2 файла, что не очень удобно. Как их объединить в один? Я так понимаю, что нужна собственная реализация importExtension из QScriptEngine?

Так как плагин планируется много, то хотелось бы подключать их к движку динамически. Я имею ввиду следующее:

import my.plugin;

var myObj = new MyPluginObj();

Как это должно быть реализовано? Или я не так понимаю смысл «import»?



Последнее исправление: Rubbiroid (всего исправлений: 1)

Не совсем понятно, что и зачем. Может подробнее распишешь хотелки и как ты это думаешь реализовыват?

MikeDM ★★★★★
()
Ответ на: комментарий от MikeDM

Пишу магистрскую (master которая). Цель - распараллелить алгоритмы роутинга для плисок. Параллелить можно по разному: для более лучшего качества или меньшего времени выполнения. Поэтому пишу прогу, которая будет сравнивать результаты работы различных вариаций алгоритмов.

Все алгоритмы будут реализованы как отдельные плагины, чтобы потом другие студенты могли свои добавлять. Задание для проги - это скипт. Так не нужно каждый раз что-то компилировать, да и гибкость большая получается. Вариантов проги будет 2: с гуями и без. Если плагины делать только как QtScriptExtensions, то нельзя их будет в C++ коде использовать. Я пока не знаю, понадобится ли это вообще, но вдруг.

С объединением различных плагинов в один файл я уже разобрался. Как говорят тут http://qt-project.org/wiki/QtPlugins различные типы плагинов нельзя скинуть в один файл. Так что надо писать свой код (точнее скопипастить из исходников qt), который добавляет объекты из плагины в скриптовый движок.

Остался только вопрос про initialize-метод плагина для скриптов. Я так понимаю, что этот метод должен просто добавлять объекты в движок (через newQObject) и помещать его в нужное место? А import в скрипте просто добавляет нужный объект в текущий неймспей?

Rubbiroid
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.