2008-09-23 4 views

답변

10

필자는 7 년간 여러 플랫폼에서 C++로 수행 한 몇 가지 프로젝트에서 Qt를 사용했습니다. 나는 꽤 잘 작동하고, 내가 알지 못했던 언어 (Objective-C)를 통해 맥을 뛰어 다니는 것보다 괜찮은 GUI 애플리케이션을 개발하는 것이 더 빠를 것이라고 생각한다.

신호/슬롯 메커니즘은 다소 펑키하지만 끔찍한 것은 아니라고 생각합니다. 일단 당신이 그것을 조금이라도 사용한다면, 그것은 쇼 마개가 아닙니다. 연결 물건은 쉽게 꼼짝 못할 (또는 적어도) 것이 었습니다. 앱이 기분 좋게 진행되어 작동하지 않는다고 말하지 않기 때문에 항상 그 답을 확인하는 것이 좋습니다.

jambi를 사용한 적이 없습니다.

0

Qt는 매우 훌륭한 라이브러리이지만 좌석 당 개발자 라이선스가 비쌉니다. 따라서 모든 프로젝트에서 항상 유용하지는 않습니다.

+2

Qt는 라이브러리가 아니므로 프레임 워크입니다. – nbro

3

C++에서 유일한 대안은 MFC와 wxWidgets입니다. QT/wxWidgets은 주로 개인적인 취향입니다. 나는 QT가 훌륭한 문서로 깨끗한 디자인이라고 생각한다.
QT는 개발자 급여가 GPL 용으로 사용되지 않는 경우 약 1 개월의 비용이 소요됩니다.

+1

물론 MFC와 wxWidgets보다 다른 옵션이 있습니다! 예를 들어, WTL이 있습니다! –

+0

WTL은 다소 포기하고 MFC에 너무 가깝기 때문에 안락함을 느낄 수 있습니다. 작은 유틸리티가 아닌 다른 용도로 선택해야할지 모르겠 음 –

+1

다른 많은 툴킷이 있습니다. Fltk, Gtk는 특히 C++ 바인딩을 가지고 있지만 C 바인딩이있는 GUI 툴킷은 사용할 수 있습니다. –

28

저는 상업적 개발을 위해 수년 동안 Qt를 사용해 왔으며 매우 만족합니다.

Qt의 멋진 점 중 하나는 일관된 스타일과 모든 멀티 플랫폼의 모든 GUI 라이브러리 (예 : XML 파싱, 스레드, 네트워킹)를 제공한다는 것입니다. 이것은 우리가 다른 라이브러리를 사용할 필요가 거의 없다는 것을 의미합니다.

우리에게 중요한 또 하나의 요소는 국제화입니다. 이전의 MFC 기반 응용 프로그램에서는 우리가 지원하는 두 언어에 대해 2 개의 현지화 된 버전을 유지 관리해야했습니다. Qt 기반 앱에서 우리는 하나의 버전 만 가지고 있습니다.

  • Qt는 번역 시스템, 언어 학자를 사용하는 사용하기 쉽고 (물론 여전히 많은 작업 인 문자열을 번역해야한다!)
  • 그래픽 사용자 인터페이스 레이아웃 시스템 위치를 쉽게 여러 언어를 지원합니다 위젯은 레이아웃에 따라 크기를 조정하여 모든 것을 훨씬 쉽게 만듭니다. 다른 언어에서는 문자열의 길이가 다릅니다. MFC와 같은 고정 크기 위젯을 사용하면 각 대화 상자를 각 언어에 맞게 조정해야합니다. 그렇지 않으면 레이블의 일부가 잘릴 수 있습니다. Qt를 사용하면 크기를 조정할 수 있습니다. 물론 정확하게 작동하지 않는 경우도 있지만 모든 것을 훨씬 쉽게 만듭니다.
  • QString은 유니 코드의 모든 것을 처리하고 다른 코덱의 변환을 매우 쉽게 처리합니다.

매우 귀중한 한 가지는 소스에 대한 액세스입니다. 물론 이것은 Qt에만 고유하지 않습니다. 여러 경우에 Qt 소스를 확인하는 기능이 이상한 동작을 설명하거나 무언가를 성취 할 수있는 단서를 제공합니다.

Qt에서 몇 가지 버그를 발견했습니다. 일부는 Trolltech에보고 한 후 수정되었습니다. 다른 경우 그들은 일을 제안했습니다. 이것들은 모두 매우 불분명하고 우리 개발에 큰 영향을 미치지 않았습니다.

Qt의 주된 단점 중 하나는 상용 응용 프로그램에서 사용할 타사 라이브러리가 부족하다는 것입니다.그러나 Qt는 상당히 완벽하므로 우리에게 큰 문제는 아니지만 개발중인 응용 프로그램 유형에 따라 다릅니다.

저는 잠비를 사용하지 않았습니다.

+0

안녕하세요 David, 당신이 말하는 타사 라이브러리는 무엇입니까? 예를 들어 주시겠습니까? – Krishnan

+0

Qt Quick을 사용하여 한 달 전에 Qt를 사용하기 시작했습니다. 지금까지 가장 큰 불만 사항은 실수를하거나 예외를 던지거나 오류를보고하지 않는다는 것입니다. 잘못한 것을 암시하지 않고 원하는 것을 수행하지 못합니다. 다른 심각한 문제도 많이 있습니다. – Mitch

3

저는 Qt를 2 년 이상 사용해 왔습니다. 내가 Qt를에 좋아

상황은 다음과 같습니다

    유용한 예제와
  • 니스 컨테이너 클래스
  • 멋진 그래픽과 장면 프레임 워크
  • 우수한 문서, Qt는 디자이너 ( MFC에 비해)
  • 쉬운 GUI 프로그래밍
  • 번역 지원
  • 좋은 기술 지원

Qt Developer Days을 적극 권장합니다. 참여할 기회가 있다면 해보십시오! 거기에서 멋지고 흥미있는 이야기가 많이 있습니다.

4

이전 작업에서 Qt를 사용했습니다. 나는 그저 몇 년 전에 Qt와 접촉 한 적이 있었기 때문에 Qt newb였습니다. 나는 나의 언어와 환경을 선택 들었다 시작

하지만 크로스 플랫폼을 지원하는 것이 바람직했다. 나는 Qt와 Java를 사용해 보았고, 심지어 C#에게 그걸로 해 줬다. 각 옵션을 평가하는 데 2 ​​일을 보냈습니다.

어쩌면 저는 C++ 개발자로서 약간의 편향을 받았을 것입니다. 그러나 각 옵션에 시간을 투자 한 후에 오랜 학습 곡선없이 유용한 힌트를 보여준 유일한 사람이 Qt였습니다.

Qt를 및 예제 응용 프로그램과 함께 제공되는 문서까지 매우 빠르게 실행 얻을 수있는 숙련 된 개발자하지만, Qt는 초보자를위한 매우 쉽게했다. 평가판 사용 기간이 끝날 때까지 최종 애플리케이션의 UI 프로토 타입/모형을 만들었습니다. Java/Eclipse, Java/SunStudio 및 C#/VS.net을 사용하여 그 당시에는 아무 일도 일어나지 않았습니다.

신호/슬롯 익숙해 지는데 좀했다,하지만 너무 나쁘지 않았다, 그리고 연결이 응용 프로그램을 중지하는 바보 오타를 중지 실패했을 때 내가 주장하는 몇 가지 간단한 래퍼를 썼다. 일하는 것에서.

내가 좋아하는 다른 것은 Qt는 내가 필요한 거의 모든 것을 가지고 있다는 것입니다. 저장소, 네트워킹, GUI, 스레딩, 컨테이너 등의 이름을 지정합니다. Qt는이를 처리 할 클래스를 가지고 있습니다. 라이브러리를 혼합하면 가끔 문제가 발생할 수 있기 때문에 어떤 IMHO가 중요합니까?

Qt에 대한 소스 코드를 얻는 것이 큰 도움이되었지만 개발 중에 사용할 디버그 버전을 포함하여 내가 선택한 컴파일러와 설정을 사용하여 Qt를 컴파일 할 수있었습니다.

는 또한 상당히 좋은 것으로 트롤 테크의 지원을 발견했다. Qt에 대한 몇 가지 버그를 제기했는데, 그 중 하나는 프로젝트에서 작업하는 동안 고정되어 출시되었습니다 (단 6 개월 만에 작업).

유일한 음수는 Qt 객체를 디버깅하는 데 어려움이있었습니다 (VS 사용). Qt 객체를 검사 할 수있는 VS 용 Qt 플러그인이 있지만 무료 버전의 VS 및 플러그인을 사용하고있었습니다. 그것. 그러나 그것은 Qt의 잘못이 아닙니다.

저는 잠비를 사용하지 않았기 때문에 논평 할 수 없습니다.

8

여기에 Qt를 내 장점과 단점의 일부입니다 :

장점 :
크로스 플랫폼 내가이 일을 알고
항상 사용되지만, Qt를 앞뒤로 윈도우와 리눅스 사이에 진행 한 후 , 나는 일어나서 달리기 위해 내가 얼마나해야하는지 놀랍다. Qt Designer에서만 Vim을 사용한다는 사실에 도움이된다고 생각합니다.

QMake
이것은 내가 좋아하는 Qt의 하나입니다. wxWidgets, FLTK 등에서 작업을 한 후에 다른 빌드 시스템을 사용하는 데 지쳐서 makefile을 수동으로 만들고 싶지 않습니다. 나는 현재 Qake 이외의 다른 것들에 대해서 CMake를 사용하고 있지만 Qt를 CMake로 천천히 움직이고 있다고 생각합니다. 그러나 QMake를 사용하면 쉽게 얻을 수 있습니다.
QTestLib

나는 다른 C++ 유닛 테스트 프레임 워크 몇 쳐다 보면서 내가 QTestLib를 사용하여 내 테스트를 만들 때, 그것은 NUnit과 (C#을) 매우 유사한 느낌과 분 이내에 내가 몇 통과 테스트를했다. 나는 또한 내 자신의 continuous integration 환경을 만드는 것이 매우 쉽다는 것을 알았다.

생산성이 가장 낮은 Java 및 .Net
사람들이 C++에 대해 듣고/말했던 가장 큰 점은 "Java 또는 .Net으로 생산성을 높일 수 있습니다."입니다. 개인적인 경험을 통해 Eclipse 또는 Visual Studio가로드되기 전에 Vim 및 Qt Designer를 사용하여 Qt에서 실행되는 응용 프로그램의 프로토 타입을 얻을 수 있습니다. 또한 닷넷이나 자바에있는 Qt에서 매우 비슷한 라이브러리 세트를 얻을 수 있으며 거기에 없으면 기존의 C++ 코드를 활용할 수 있습니다. 단점


:
가격
이것은 내가 지금 생각할 수있는 가장 큰 요인이다. 그러나 영업 담당자에게 전화하지 않고도 몇 센트를 절약해야하는지 알았다면 비용은 1 센트 씩 가치가 있습니다. 나는 중소기업 할인을받은 날에 면허증을 다시 구입했고, 그만한 가치가 있었고, 나는 3 배나 많은 돈을 지불했을 것이고, 그것이 현재의 가격이라고 생각합니다.

상업용 라이센스가있는 곳으로 개발
나는 어떤 플랫폼에서도 개발할 수 있지만 다른 플랫폼 용으로 제작하고 판매 할 수 있기를 바랍니다. 예를 들어, Linux에서 개발 한 다음 Windows 상용 라이센스 만 있으면 Windows에서 빌드하고 배포하십시오. 내가 아는 바로는 라이선스가있는 플랫폼에서 상용 응용 프로그램을 개발하고 빌드 할 수 있습니다.

공급 업체 잠금 장치
글쎄 일종의 개인 사기극입니다. 회사 방향 및 제품 방향에 따라 측면을 추적하기 때문에 특정 공급 업체와 연결되는 것을 좋아하지 않습니다. 트롤 테크 (TrollTech)는 노키아에서 구입했는데, 잘 모르겠지만 좋지는 않지만, 크기가 나쁜 것을 할 수있는 회사입니다.


나는 이제 끝났다고 생각합니다. :). 오, Jambi를 사용하지는 않았지만 Jambi와 함께 C++로 개발 된 플러그인을 사용하는 것이 얼마나 쉬운 지 알아보기 위해 몇 가지 프로토 타입 프로젝트를 수행하는 데 관심이 있습니다. 특히 Jambi를 C++ 플러그인과 웹 인터페이스로 사용합니다.

솔직히 말해서별로 읽지 않았기 때문에 불가능하거나 매우 쉽습니다.

+4

비용은 얼마입니까? 이제는 LGPL이되었고, GPL은 첫날부터 주변에 있습니다! – fengshaun

+0

원래 Windows에서 2,500GBP 이상인 개발자는 Linux에서 GPL이었고 (상용 응용 프로그램을 사용하는 경우별로 도움이되지 않음) 약 1 년 전 LGPL이되었습니다. –

0

사용하지 마십시오, 그러나 ...

프로 : QT는 WX는 현재 2 허용하는 선택적인 3 상 레이아웃을 가지고 (그냥하지 않은, 그들은 3 상을 할 계획 믿는다 아직 작업하지 않았다).

레이아웃 사용시 가장 큰 문제 중 하나는 정적 텍스트 및 줄 바꿈입니다. WX는 화면의 너비/높이 및 부분이 얼마나 큰지 묻습니다. QT는 원하는 넓이, X 너비가 얼마나되어야 하는지를 말합니다. 이렇게하면 페이지의 흐름을 훨씬 잘 표현할 수 있습니다.

관련 문제