2010-01-19 2 views
14

나는 그것들을 함께 사용할 수 있지만, Qt의 신호와 슬롯 메커니즘을 프로그램의 Qt 부분 (위젯 등)에서 Boost.Signal로 대체 할 수 있는지 궁금합니다.Qt의 신호 대신 Boost.Signal을 사용 하시겠습니까? moc없이합니까?

누구나 사용해 볼 수 있습니까? 어떤 문제가 있니?

다른 MOC 기능을 사용하지 않고 신호/슬롯을 boost.signal로 바꾸 었다고 가정하면 완전히 moc하지 않아도됩니까?

+0

[Qt를 혼합 및 부스트 (http://stackoverflow.com/questions/360160/mixing-qt-and-boost/695398) –

답변

3

나는 그것이 당신이하고 싶은 일이라고 생각하지 않습니다. Qt의 신호는 프레임 워크와 어떻게 생성되고 처리되는지에 깊이 통합되어 있습니다. 시간 낭비하지 마라.

4

나는 나의 프로젝트 중 하나를 위해 그것을 고려했다. 프로젝트에 따라 당신을 괴롭힐 수있는 한 가지 측면은 Qt Designer입니다. Qt-Designer은 GUI 연결을 위해 신호 슬롯을 만듭니다. 따라서 디자이너를 사용하게되면 signals-slotsboost::signals을 모두 가진 프로젝트로 끝납니다. 이들을 함께 사용하는 데 몇 가지 문제가 있습니다. 블로그 this을 참조하십시오. 그것들이 함께 일할 수는 있지만, 나는 두 가지 접근 방식을 혼합하는 것을 삼 간다.

하지만 내가 직면 한 가장 큰 문제는 boost::signals은 스레드로부터 안전하지 않은 반면 Qt는 signal-slot입니다. 내 프로젝트가 멀티 스레드 된 것처럼 내게는 쉬운 결정이었습니다.

당신은 this PDF의 Page-11에서 상대적인 장점과 및 Qt는부스트가 취한 접근 방식의 디 장점을 얻을 수 있습니다.

HTH

+7

Boost.Signals2 스레드 안전하다. Qt Designer를 사용하지 않기 때문에 문제가되지 않습니다. – drby

+0

@drby : 당신은 어떨까요? qmake를 사용하여 * MOC * 매크로를 사용하는 것이 자동화되어 있습니까? 그렇다면 변경해야 할 수도 있습니다. 그렇지 않다면, 나는 더 많은 typesafe이기 때문에 언제나 부스트를 선호 할 것입니다. 행운을 빕니다. – Abhay

관련 문제