Несколько советов -
1) Выберите свой стиль, с которым будет работать пользовательский интерфейс - будет ли он без сохранения состояния?Если да, как вы собираетесь обрабатывать события надлежащим образом?В случае отсутствия состояния вам, возможно, придется дважды пересмотреть свой пользовательский код пользовательского интерфейса, чтобы получать последние изменения событий со стороны пользователя.Если ваш пользовательский интерфейс хранит состояние, вам не придется заботиться об обработке событий, но он будет ограничивать ваши пользовательские интерфейсы, когда речь идет о быстрых мутациях и перестройках.
2) Не слишком полагайтесь на ООвиртуальные методы - не самая быстрая вещь в мире, поэтому используйте их с осторожностью;хотя может помочь какая-то структура на основе наследования.Остерегайтесь dynamic_cast и RTTI, если вы используете объекты;они замедлят тебя.Вместо этого установите метод enum, get_type () для каждого класса виджетов и выполните ручные проверки на возможность кастрации.
3) Попробуйте разделить внешний вид и логику / макет интерфейса.
4) Если вам нужны динамические окна, макеты и т. Д., Вам придется обрабатывать выравнивание, зажимы, положения и т. Д. И их обновления.Если вам нужны статически размещенные виджеты, это сделает это намного проще.
5) Не переусердствуйте, вы не выиграете от этого.
На самом деле нет ничего слишком специфического.сказать тебе;может, поможет какой-то конкретный вопрос?