2008-12-11 6 views
65

Qt 4 프레임 워크를 사용하여 C++ 프로젝트를 시작합니다 (크로스 플랫폼 GUI 필요). Boost 라이브러리에 대한 좋은 소식을 친구들과 온라인에서 들었습니다. 나는 두 가지 모두를 읽기 시작했고 너무 깊이 들기 전에 간단한 질문을하고 싶었다.이 두 가지 개발 "시스템"은 상호 배타적인가?Qt와 부스트 믹싱

내 초기 검색 및 읽기는 신호 처리, 사용자 정의 빌드 시스템 및 기타 저수준 프리미티브에서 일부 겹치는 부분을 보여줍니다.

두 프로젝트를 같은 프로젝트에서 사용하는 것이 합리적입니까?

답변

55

네, 그렇습니다. 나는 대체로 Qt 대안보다는 가능한 boost/stdlib 함수를 사용하는 것을 선호합니다.

그러면 코드가 다음 프레임 워크로 이전하기가 더 쉽습니다.
새로운 비 Qt 프로그래머가 속도를 향상시키는 것이 더 쉬워집니다.
부스트는 훌륭한 기능을 가지고 있으며 항상 더 많은 것을 얻고 있습니다.

참고 : 위젯과의 문자열이 주요 예외 일 가능성이 있습니다. GUI 내부에서는 Qt 문자열을 사용하여 모든 곳에서 혼란스러운 캐스트를 저장합니다.

+30

Qt 또한 훌륭한 기능을 갖추고 있으며 항상 더 많은 것을 얻고 있습니다. Qt는 Boost와 비교하여 훌륭한 (더 좋은) 문서를 가지고 있습니다. 부스트를 사용하면 부스트가 아닌 프로그래머에게도 더 어려워진다는 주장을 할 수 있습니다. – sivabudh

+12

부스트에 대해서는 참이지만 여전히 Qt의 콜렉션 클래스에 std :: vector 등을 사용합니다. –

7

We (Last.fm)는 둘 다 함께 사용합니다. 아직 시작하지 않았기 때문에 아직 많은 경험이 없습니다. 지금까지 모든게 괜찮습니다. :)

17

특히 크로스 플랫폼을 사용하고 있기 때문에 비즈니스 로직과 데이터 액세스가 GUI에서 가능한 한 제거 된 멋진 아키텍처가 있어야합니다. 이 경우 응용 프로그램의 백엔드를 작성할 때 Boost를 사용하고 프런트 엔드의 Qt로 점프해야하며 접착제의 필수 더미를 수행해야합니다.

"엔진"이 GUI 선택과 다른 경우, 미래에 다른 것 (아마도 네이티브 라이브러리 일 가능성이 있음)에 대해 최소한의 노력으로 스왑 핑할 수 있습니다.

3

QT와 함께 Boost.Signals를 사용할 때 잠재적 인 문제가 있습니다. 이것들은 Boost.Signals FAQ에 문서화되어 있습니다.

31

This paper은 QT의 signal slots 메커니즘과 매우 적절하게 Boost::Signal을 비교합니다. 이 믹스에 대해 조금 궁금하신 분은 꼭 읽어야합니다.

+1

좋은 종이. 링크를 가져 주셔서 감사합니다. – dwj

3

Boost Signals2을 사용할 수 있으며 스레드로부터 안전하다고 간주하십시오.