Qt: классы Qt по сравнению со стандартным C ++

Большой объем функциональности дублируется между стандартными c ++ и Qt. В какой-то момент это кажется логичным, но много раз это выглядит глупо. Как будто я делаю новый язык программирования, изучаю вещи, которые я уже знаю. например, используя QFile.

Также, если я сделаю все это Qt и предположим, что теперь я хочу выйти из среды Qt, будет слишком утомительно переписывать этот код. OTOH мне нравится Qt, потому что он предоставляет мне библиотеки, которые в противном случае мне пришлось бы ловить себя, как webkit, подключение к базе данных, dbus и т. Д.

Что вы предлагаете смешать в стандартном C ++ или в чистом виде Qt?

7
задан Xolve 19 August 2010 в 15:52
поделиться

2 ответа

Как там не является графическим интерфейсом пользователя в C ++, вам следует абстрагировать код графического интерфейса от остальной части реального кода.

Тогда в рамках QT-реализации абстракции графического интерфейса пользователя не стесняйтесь использовать код QT.
После этого вы также сможете написать абстракцию графического интерфейса пользователя Wx / Quartz, не затрагивая реальный код.

В реальном коде (где была проделана работа) придерживайтесь стандартных вещей (или кроссплатформенных библиотек, которые почти стандартны (ускорение)). Можно утверждать, что QT кроссплатформенный. Просто помните, что использование библиотеки здесь будет тесно связывать ваш код с библиотекой, поэтому извлечение последней даты будет нетривиальным. (см. предыдущий вопрос об удалении Rouge Wave из устаревшего приложения)

5
ответ дан 7 December 2019 в 05:15
поделиться

Я делаю все классы коллекций в std ::, это более понятно для разработчиков, не занимающихся Qt, и более переносимо.

Строки и списки строк. Я использую строки Qt внутри чисто Qt-функции, которая делает что-то в стиле графического интерфейса пользователя, но в остальном использую std :: String. Хотя форматирование Qt .arg () намного лучше, чем строковый поток

3
ответ дан 7 December 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: