Хай.
Есть реальная необходимость строить ГУЙ из некоего скрипта/шаблона/правила.
Т.е. есть код. Написан руками. Т.е. объекты - сигналы/слоты. Нужно часто менять внешний вид ГУИ. Постоянно редактировать формы дизайнером не дело, т.к. нужно перекомпилировать программу.
Я вижу решение этой задачи весьма простым(если чего-то не упустил. что возможно). Разработать синтаксис файла-дизайна, парсер, билдер.
пример скрипта:
XML
form.button1(pos, xsize, ysize, other_attributes...)[signal_name, receiver, slot_name]
так же есть класс:
C++ (Qt)
class Main: public QDialog {
Q_OBJECT
public:
...
public slots:
void slot_name();
};
пример использования.
C++ (Qt)
int main(...) {
...
Main* m = new Main;
parser* p = new parser("filename");
...
}
принцип работы парсера/билдера:
1. классы, к которым парсер будет коннектить сигналы/слоты, должны быть созданы раньше него.
2. в скрипте, поле "receiver", содержит реальное имя класса.
3. в скрипте, поле "slot_name", содержит реальное имя слота декларированного в классе "receiver".
как-то так
Есть ли что-то подобное уже написанное?
Если нет, буду писать.
Интересует, что я не учел? Какие "подводные камни" могут встретится? И вообще мнение компетентных в этом вопросе людей.
Всем спасибо.