Всем доброго времени суток.
В Qt я чайник. Так что, прошу не посылать лесом, а всё доходчиво объяснить. С основными принципами знаком, а вот с расширенными разными фичами как-то не особо.
Вот загорелся желанием сделать движок БД Oracle на Qt. (прикручено к visual studio 2008 со скомпиленными дровами для Оракла, так что, проблем взаимодействия с Бд не наблюдаю).
Но уж очень хочется сделать приложение гибким и стабильным. Чтобы при любых изменениях/добавлениях не пришлось пересобирать приложение и потом обновлять всем сотрудникам организации.
Посетила идея, что необходимо интерфейс клиентской части описать через XML (ну да, можно и .ui, но тут дело такое...), то есть расположение виджетов в диалоге и некоторые ихние атрибуты, а бизнес-логику организовать через Qt Script'ы.
Например, на сервере в одной папке лежат XML-файл и файл с Qt Script'ом. Клиент цепляется к серверу, загружает XML-файл, в котором, в самом начале указана ссылка на наш файл со скриптом. Далее указаны виджеты, их расположение в каком-либо лейауте, текст, а так же (самое главное) обработчик события, который находится в скрипте. Вот самый банальный пример из головы.
<?xml version="1.0" encoding="utf-8"?>
<dialog layout="vertical">
<qtscript file="script.js" />
<widget type="button" name="button1" text="Btn1" onclick="button1Clicked" />
<widget type="edit" name="edit1" text="input here" />
</dialog>
При нажатии на кнопку клиентская часть должна считать script.js и выполнить функцию (обработчик) button1Clicked из этого самого файла.
Возможно ли это? При учёте, что в скрипте должны быть доступны
все виджеты диалога (ну их вроде можно назначить движку скрипта как глобальные объекты при парсинге XML-документа). То есть должен получиться такой, скажем так, браузер, которому нужно указать лишь пути к xml-документам и приложение можно будет расширять, создавая лишь эти документы и скрипты.
Если можно, то лучше всего приведите пример, пожалуйста.