문제

나는 이미 C ++ 프로그램을 작성했으며 GUI를 작성하고 싶습니다. QT는 훌륭한 도구라는 것을 알고 있지만 QT는 자체 클래스를 가지고있어 혼란스러워합니다. EG : 문자열 대신 QT는 Qstring이라는 클래스를 가지고 있습니다.

C ++ 코드와 QT 코드를 C ++로 혼합 할 수 있는지 궁금합니다.

도움이 되었습니까?

해결책

예, QT와 STL을 매우 쉽게 인터 믹스 할 수 있습니다.

GUI가 가져갑니다 QStrings하지만 이러한 양식을 조용히 생성합니다 std::string 또는 char*, QStrings QT에서 반환하면 변환 할 수 있습니다 toStdString() 또는 toAscii().

QT에는 컬렉션 클래스 세트가 포함되어 있지만 사용할 필요는 없습니다.

QT는 현대 C ++처럼 보이는 일을 잘 수행하며 신호 및 슬롯 이벤트 메커니즘을 처리하기위한 몇 가지 '엑스트라'가 있지만 코드보다 빌드 환경에 더 합병증이됩니다.

편집 : 감사합니다

다른 팁

STD C ++ 코드와 QT 코드를 함께 믹싱하는 것이 좋습니다.

C ++ 코드는 QT 코드와의 논리이며 GUI 용이어야합니다. MVC/MVP 패턴을 사용하거나 마찬가지로 논리와 UI를 분리하십시오.

따라서 미래에 UI를 사용하거나 사용하지 않고 코드를 실행할 수있는 것이 더 쉬울 것입니다.

요컨대, 당신은 할 수 있습니다! 예를 들어, QString은 본질적으로 문자열이며 ToASCII () 메소드가 있으므로 프로젝트에 QT를 쉽게 사용할 수 있습니다. QT를 Visual Studio에 통합하는 몇 가지 문제가 발생할 수 있지만 (사용하고 있다고 가정) C ++ 코드와 QT 코드 (C ++에있는)를 혼합 할 수 있습니다.

응! QT는 C ++ 코드에서 사용할 수있는 것입니다. QT는 주로 GUI를위한 것이지만 소켓, 컨테이너, 네트워크에 좋은 클래스입니다. STL 및 기타 일반 클래스 또는 QT가 제공하는 클래스를 자유롭게 사용할 수 있습니다. 가장 큰 요점은 메인 컴파일 전에 코드에서 QT를 사용하면 컴파일러를 준비하기 위해 메타 컴파일을 수행해야한다는 것입니다. 눈에 띄는 것은 QT가 표준이 아니라는 것입니다. Windows, Linux 및 Mac OS를 지원하지만 다른 플랫폼에서는 사용할 수 없습니다.

그들은 함께 사용할 수 있습니다.

C ++는 오랜 역사를 가지고 있으며 STL 구현과 지원은 언어로 진화했습니다. 전 트롤 테크 팀은 QT 라이브러리에 의존하기 위해 STL 구현의 품질과 가용성을 충분히 제어 할 수 없다고 결정했다고 생각합니다. 그 결과 QT에는 자체 QTL, QTAlgorithms 헤더 및 QSTRING이 있습니다.

그들은 STL과 호환되도록 조심했습니다.

  • 대부분의 컨테이너는 STL과 유사한 컨테이너가 있습니다 (예 : 반복자 액세스, Push_back (), Emption () 등)
  • QT 컨테이너는 STL 컨테이너로/로 변환 할 수 있습니다 (예 : QVector :: TostDVector, Qlist :: FromStdlist)
  • QT 컨테이너는 STL 알고리즘과 함께 사용할 수 있습니다
  • QString은 std :: string 및 std :: wstring을 tostd (w) string / fromstd (w) String으로 변환 할 수 있습니다.

개인적으로, 나는 std :: string보다 QString을 좋아합니다. 사용하기가 더 쉽고 강력합니다.

그래 넌 할수있어.

실제로 C 기반 함수 세트에 대한 QT-Gui-Wrapper를 만들었습니다. QT 통합에 문제가 없으며 낮은 레벨 C 만 (메모리를 누출합니다 ...).

여기를 봐: http://code.google.com/p/qhocr/

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