Создание форм |
Здравствуйте, гость ( Вход | Регистрация )
Создание форм |
ht1515 |
16.1.2015, 17:45
Сообщение
#1
|
Студент Группа: Участник Сообщений: 29 Регистрация: 14.4.2012 Пользователь №: 3324 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет!
Есть ПО, в нем всегда изменяющаяся часть - формы гуи. Хочу сделать что-то типо ядра ПО и формы рисовать через кутескрипт. Это Реально? Также кутескрипт должен будет вызвать методы классов из кода... выполнять какие-то действия... |
|
|
lanz |
16.1.2015, 19:19
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Реально, но мне не очень понравилось.
-1. Если используете какой-либо скриптовый язык, делайте лучше программу в форме расширенного интерпретатора языка, а не в виде программы, которая исполняет куски кода через eval, так будет гораздо удобнее. 0. Рисовать формы все равно придется кодом qscript, не проще ли в дизайнере? Сделайте нужные компоненты для дизайнера и пользуйтесь. 1. qscript хорош в связке с QML, если ваши формы динамические, используйте QML. 2. или возьмите PySide или любой другой биндинг. |
|
|
ht1515 |
16.1.2015, 20:00
Сообщение
#3
|
Студент Группа: Участник Сообщений: 29 Регистрация: 14.4.2012 Пользователь №: 3324 Спасибо сказали: 0 раз(а) Репутация: 0 |
0. Пример калькулятора?
1. Надо будет изучить... 2. Ничего не знаю про это |
|
|
lanz |
16.1.2015, 20:07
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Цитата 0. Пример калькулятора? Никто не мешает совмещать рисование форм и процедурную генерацию элементов, вообще если формы сложные/сильно нестандартные лучше использовать QML. Цитата 1. Надо будет изучить... Там тот же ECMAScript, довольно просто все. Цитата 2. Ничего не знаю про это А вот это зря |
|
|
ht1515 |
16.1.2015, 21:35
Сообщение
#5
|
Студент Группа: Участник Сообщений: 29 Регистрация: 14.4.2012 Пользователь №: 3324 Спасибо сказали: 0 раз(а) Репутация: 0 |
а что все таки лучше для моего случая?
Опишу задачу свою подробней. У меня есть некое ПО (каркас ), к нему подключаются dllки(модули, которые соединяются с каркасом,через интерфейс). Мне надо чтобы я сделал например форму, в которой, мы были кнопки, нажимая на которые я бы мог вызывать функции этих модулей, текстовые поля, в которых по сути выводилась бы какая-то инфа с этих модулей. то есть я хочу произвести некое разделение по написанию кода. То есть 1 программист пишет каркас, другие модули, третьи стряпают формы, которые бы управляли модулями. Почему я бы хотел в скрипты выделить эти формы. Почему? Просто те формы, которые получатся через скрипты, должны содержать в себе виджеты разных модулей. Кстати это возможно? то есть модуль предоставляет каркасу виджеты. Эти виджеты в формах сделанных скриптовым языком можно будет отобразить? Кстати я всю гуи пишу без дизайнер, для справки, все в коде, не qml. Ну так вот. форма, нарисованная скриптом будет содержать N виджетов моделей и набор специализированных элементов(кнопок например), которые будут выполнять операции с этими модулями(например дергать функцию из 1 модуля а потом функцию из второго). Вот такая вот идея. Если мне это удастся сделать, значит я смогу сделать стабильный каркас и его не надо будет каждый раз переделывать, специализирую под конкретный набор модулей(то есть формы работы с модулями сейчас пишу прямо в каркасе, что не есть очень хорошо). Я хочу избавится от рутины описывать эти формы в коде и перенести это на скрипты. Надеюсь понятно объяснил |
|
|
lanz |
17.1.2015, 2:27
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Понятно конечно, я сам пару лет назад сделал такую систему, да и не я один думаю
http://en.wikipedia.org/wiki/Inner-platform_effect А что будет в стабильном каркасе? Будет возможность добавить виджет? Сделать лэйаут? Добавить сплиттер? Показать диалог? Перехватить событие закрытия главного окна? Вернуть данные из диалога? Обнаружить и установить связь с другим модулем? Передать данные между модулями? В итоге придется большую часть С++ функциональности обернуть в обертки, интерфейсы - лишний код. И в итоге все равно ничего не получится, когда появится новый модуль, окажется что ему надо отслеживать нажатия клавиатуры - переделка каркаса, потом модуль который будет выводить графику через OpenGL - опять переделка. Все что вы перечислили есть в Qt. Система плагинов, ui-файлы с их загрузкой, генерация форм из кода. Не нравится писать на C++, есть биндинги для других языков. Цитата Я хочу избавится от рутины описывать эти формы в коде и перенести это на скрипты В скриптах это будет та же самая рутина, просто передвигаете работу туда-сюда. Суммарная работа не измненится. |
|
|
Текстовая версия | Сейчас: 28.11.2024, 1:22 |