Рекомендуемые инструкции по перемещению от wxWidget до QT

У меня есть проект, который использует wxwidget инструментарий (wxThread, wxString, wxEvent, wxDateTime, wxLog и т.д.). Я нахожусь в процессе отодвижения к QT.

Я немного укрощен задачей и мыслью ее лучшее для вхождения здесь для выяснения у тех, которые, возможно, провели такую операцию прежде.

Сделайте меня:

  1. проявите более измеренный подход (замените один класс за один раз - это не может быть столь прямым, как это звучит, поскольку существуют некоторые зависимости между классами),

  2. Просто погружение в голове сначала и срывает кишки и осуществляет рефакторинг все сразу (Хм, звуки, болезненные...)

5
задан MaxVT 18 February 2010 в 17:42
поделиться

1 ответ

Я не знаю WxWidgets, поэтому у меня есть только половина ответа:

  1. Если это еще не сделано, попробуйте отделить всю логику от операции с графическим интерфейсом пользователя перед переходом на Qt. Вероятно, вы могли бы добиться этого, следуя шаблонам представления Джереми Миллера . Обычно хорошо обернуть ваши доменные классы в классы графического интерфейса. Это позволяет вам работать на языке домена. Затем класс-оболочка может использоваться для связи с графическим интерфейсом пользователя и по существу служит классом адаптера . Это делает тестирование легким и минимальным.
  2. Избегайте обратных вызовов, поскольку Qt использует сигналы и слоты. Там, где вам нужно отправить сообщение, вызовите виртуальную функцию - это упростит тестирование с использованием Mocks / Fakes / Stubs и соответствует принципу открытого-закрытого , что позволяет легко изменить один раз в Qt.
  3. После того, как ваш графический интерфейс отделен от логики приложения, используйте QTestlib , чтобы убедиться, что вы видите правильные сообщения (сигналы).
  4. Наконец, будьте осторожны с различиями между WxWidgets и Qt. Я не уверен, что это такое, но неверные предположения могут легко съесть ваше время. На самом деле чтение документации даже для простых виджетов неизбежно сэкономит ваше время.
4
ответ дан 15 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

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