Смешивание Qt и Boost
Я смотрю на запуск проекта в C++ с использованием фреймворка Qt 4 (требуется кросс-платформенный графический интерфейс). Я слышал много хорошего о библиотеках Boost от друзей и в интернете. Я начал читать на обоих и хотел задать беглый вопрос, прежде чем я слишком глубоко: являются ли эти две "системы" развития взаимоисключающими?
мой первоначальный поиск и чтение показывает некоторое перекрытие в обработке сигналов, пользовательских системах сборки и других низкоуровневых системах примитивы.
имеет ли смысл использовать их обоих в одном проекте?
6 ответов:
Да это имеет смысл. Я бы вообще предпочел использовать функции boost / stdlib, где это возможно, а не их альтернативы Qt.
Это упрощает перенос кода на следующий фреймворк.
Это делает проще для новых программистов, не являющихся Qt, чтобы получить до скорости.
Boost имеет некоторые большие функциональные возможности и становится все больше и больше.Примечание: строки в / из виджетов, вероятно, являются главным исключением - внутри GUI я бы использовал строки Qt для сохраняйте запутанные броски везде.
этой статье сравнивает слоты сигнала механизм в QT и Boost:: Signal очень прилично. Это необходимо прочитать для тех, кто немного любопытно этой смеси.
тем более, что вы собираетесь кросс-платформенный, вы должны иметь красиво многоуровневую архитектуру, с бизнес-логикой и доступом к данным как можно более удалены из графического интерфейса. В этом случае имело бы смысл использовать Boost при написании бэкэнда вашего приложения, и только перейти к Qt для интерфейса, с обязательной кучей слепков, выполненных в клею.
Если ваш "движок" отделен от вашего выбора GUI, вы сможете поменять Qt на что-то еще в будущем (родной библиотеки возможно) с минимальными усилиями.
мы (Last.fm) используйте их оба вместе, хотя мы только начали это делать, и поэтому у нас еще нет большого опыта. Пока все нормально, хотя:)
есть потенциальные проблемы с использованием Boost.Сигналы рядом с QT. Они задокументированы в импульс.Чаво сигналов.
считают, что Boost Signals2 доступны, и они являются потокобезопасными.
Comments