문제

우리는 현재 상당히 잘 설계된 MFC 응용 프로그램을 유지하고 있지만 사용자 인터페이스가 피곤해 보이기 시작하고 일부 중복 및 / 또는 성능 문제를 정리하기 위해 많은 코드가 리팩토링이 필요합니다..우리는 자신의 모든 드로잉을 처리하는 몇 가지 사용자 지정 컨트롤을 사용합니다 (모두 MFC를 사용하여 작성 됨).

최근에 저는 Qt와 Qt가 제공하는 이점에 대해 더 많은 연구를하고 있습니다 (플랫폼 간 및 UI 개발을위한보다 "전문적인"프레임 워크라고 부르는 것을 지원).

제 질문은- Qt 프레임 워크로 이동하는 가장 좋은 방법은 무엇입니까 ?Qt는 MFC에서 잘 작동합니까?일부 사용자 지정 컨트롤을 Qt로 이식하고 점차 기존 MFC 앱에 점점 더 통합하는 것이 더 좋을까요?(가능합니까?).

모든 조언이나 이전 경험에 감사드립니다.

도움이 되었습니까?

해결책

저희 회사에서는 현재 Qt를 사용하고 있으며 매우 만족합니다.

개인적으로는 Qt 프레임 워크를 사용하도록 MFC 앱을 옮길 필요가 없었지만 여기에 관심이있을만한 것이 있습니다.

Qt / MFC마이그레이션 프레임 워크

Qt / MFC 마이그레이션 프레임 워크

Qt-Solutions의 일부이므로 Qt-Solutions 라이선스와 함께 Qt 라이선스를 구입해야합니다.(편집 : 더 이상 )

도움이 되었기를 바랍니다.

다른 팁

(실제로 구체적인 질문에 대한 답변은 아니지만 ...) 개인적으로 Qt를 사용하지는 않았지만 상용 Windows 개발에는 무료가 아닙니다.

무료 인 wxWindows 를 보셨습니까? 여기 에 좋은 기사가 있습니다.제쳐두고, 모든 플랫폼에 대해 단일 코드 기반을 원하면 MFC에서 마이그레이션해야 할 수도 있습니다. MFC가 Windows만을 대상으로한다는 점을 확신합니다 (잘못된 경우 누군가 수정합니다).

다른 옵션 중 하나는 기능 팩 업데이트 VS2008 SP1의 MFC-Office 스타일 리본 컨트롤을 포함한 새로운 컨트롤에 대한 액세스를 포함합니다.

어려운 문제이며 시간이 얼마나 남았는지에 따라 답이 달라지는 것 같습니다. 사용자 지정 컨트롤을 Qt로 이식하면 훨씬 더 나은 결과를 얻을 수 있습니다. QStyle 클래스를 사용하여 실제 그리기를 수행하면 상자에서 꺼내 자마자 테마 가능한 코드가 생성됩니다.

일반적으로 총알을 깨물고 한꺼번에 끝까지가는 것이 좋습니다. 물론 시간이 더 오래 걸릴 수도 있지만 대안은 아주 게임을하지 않는 코드를 디버깅하는 데 시간을 보내고 두 시스템 간의 사소한 비 호환성을 처리하기 위해 더 많은 코드를 작성하는 것입니다 ( 거기에 있었다). 요약하자면, 분기를 시작하고 기존 MFC 코드를 모두 뜯어 내고 Qt로 교체하는 것이 좋습니다. 플랫폼 독립성을 (거의) 무료로 얻을 수 있으며 시간이 좀 걸리지 만 결국 훨씬 더 좋은 제품을 얻게 될 것입니다.

마지막 경고 : "Qt 방식의 작업"을 이해하는 데 시간을 할애해야합니다. 경우에 따라 MFC 방식과 상당히 다를 수 있습니다. 마지막으로하고 싶은 것은 MFC 스타일 Qt 코드로.

전에 이런 종류의 일을하는 팀을 이끌었습니다 (MFC에서 QT까지가 아니라 원칙이 작동해야합니다).

먼저 우리는 대화와 그 입력, 제어 및 출력이 무엇인지 문서화했습니다.또한 특히 GUI 내부의 영리한 논리에 대해 여러 테스트 케이스를 만듭니다.

때때로 우리는 GUI에 깨끗한 인터페이스를 제공하기 위해 비즈니스 로직을 리팩토링해야했지만 이것이 처음부터 수행되어야하는 방식입니다.

이제 캡슐화 된 GUI가 일치해야하는 GUI, 입력, 출력, 테스트 및 인터페이스 목록이 생겼습니다.

우리는 기존의 GUI와 동등한 GUI를 만들기 위해 프로젝트별로 시작했습니다.그렇게 한 후에는 이전 GUI에 GUI를 삽입하고 다시 빌드하고 테스트 할 수 있습니다.처음에는 많이 넘어졌지만 곧 일반적인 오류를 해결하고 수정했습니다.우리는 (제 생각에) 612 개의 대화 상자를 탐색했지만 작업중인 팀이 약 12 명이었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top