Всем привет!
Есть ПО, в нем всегда изменяющаяся часть - формы гуи.
Хочу сделать что-то типо ядра ПО и формы рисовать через кутескрипт. Это Реально?
Также кутескрипт должен будет вызвать методы классов из кода... выполнять какие-то действия...
Реально, но мне не очень понравилось.
-1. Если используете какой-либо скриптовый язык, делайте лучше программу в форме расширенного интерпретатора языка, а не в виде программы, которая исполняет куски кода через eval, так будет гораздо удобнее.
0. Рисовать формы все равно придется кодом qscript, не проще ли в дизайнере? Сделайте нужные компоненты для дизайнера и пользуйтесь.
1. qscript хорош в связке с QML, если ваши формы динамические, используйте QML.
2. или возьмите PySide или любой другой биндинг.
0. Пример калькулятора?
1. Надо будет изучить...
2. Ничего не знаю про это
а что все таки лучше для моего случая?
Опишу задачу свою подробней. У меня есть некое ПО (каркас ), к нему подключаются dllки(модули, которые соединяются с каркасом,через интерфейс).
Мне надо чтобы я сделал например форму, в которой, мы были кнопки, нажимая на которые я бы мог вызывать функции этих модулей, текстовые поля, в которых по сути выводилась бы какая-то инфа с этих модулей.
то есть я хочу произвести некое разделение по написанию кода. То есть 1 программист пишет каркас, другие модули, третьи стряпают формы, которые бы управляли модулями.
Почему я бы хотел в скрипты выделить эти формы. Почему?
Просто те формы, которые получатся через скрипты, должны содержать в себе виджеты разных модулей. Кстати это возможно? то есть модуль предоставляет каркасу виджеты. Эти виджеты в формах сделанных скриптовым языком можно будет отобразить?
Кстати я всю гуи пишу без дизайнер, для справки, все в коде, не qml.
Ну так вот. форма, нарисованная скриптом будет содержать N виджетов моделей и набор специализированных элементов(кнопок например), которые будут выполнять операции с этими модулями(например дергать функцию из 1 модуля а потом функцию из второго).
Вот такая вот идея.
Если мне это удастся сделать, значит я смогу сделать стабильный каркас и его не надо будет каждый раз переделывать, специализирую под конкретный набор модулей(то есть формы работы с модулями сейчас пишу прямо в каркасе, что не есть очень хорошо). Я хочу избавится от рутины описывать эти формы в коде и перенести это на скрипты.
Надеюсь понятно объяснил
Понятно конечно, я сам пару лет назад сделал такую систему, да и не я один думаю
http://en.wikipedia.org/wiki/Inner-platform_effect
А что будет в стабильном каркасе?
Будет возможность добавить виджет?
Сделать лэйаут?
Добавить сплиттер?
Показать диалог?
Перехватить событие закрытия главного окна?
Вернуть данные из диалога?
Обнаружить и установить связь с другим модулем?
Передать данные между модулями?
В итоге придется большую часть С++ функциональности обернуть в обертки, интерфейсы - лишний код.
И в итоге все равно ничего не получится, когда появится новый модуль, окажется что ему надо отслеживать нажатия клавиатуры - переделка каркаса,
потом модуль который будет выводить графику через OpenGL - опять переделка.
Все что вы перечислили есть в Qt. Система плагинов, ui-файлы с их загрузкой, генерация форм из кода. Не нравится писать на C++, есть биндинги для других языков.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)