2009-02-25 2 views
19

상당히 크고 복잡한 데이터 분석 프로그램을 작성하고 있으며 프로그램을위한 GUI를 작성할 시간이 다가왔다. 그래서 내 질문은 :Gui 툴킷을 사용해야합니까?

어떤 GUI 툴킷을 사용해야합니까?

저는 코딩과 GUI 작성에 완전히 익숙하지 않아 제공 할 수있는 모든 지침에 감사드립니다. 전 세계에서 가장 간단한 도구 키트 일 필요는 없지만 오히려 빨리 배울 수 있습니다. 그러나 다음과 같은 작업을 수행 할 수 있어야합니다 (일부는 모든 툴킷에 대해 기본적으로 믿을 수 없을 정도로 기본적인 기능을 제공하지만 일부는 여기에 모두 포함시키는 것이 좋을 것이라고 생각합니다).

사용자가 볼 수 있도록 그래프 (실제로 스펙트럼), 그림 및 물건을 넣을 수 있도록 화면에 직접 그릴 수 있어야합니다. 앞서 언급 한 스펙트럼을 클릭 한 위치 정보를 수집 할 수 있어야합니다. 텍스트를 표시하고 사용자가 텍스트 입력을 할 수 있어야합니다. 그것은 메뉴를 생성 할 수 있어야합니다 (당신은 파일, 편집 등을 알고 있습니다). 편리한 테이블을 생성하기 위해 위젯을 내장해야한다면 (화면에 직접 그릴 수 있으면 부족할 수도 있지만). 그것은 경고, 대화 상자, 저장 상자 및 열기 상자 등을 팝업 할 수 있어야합니다. 꽤 많이 들었습니다.이 중 대부분은 꽤 쓸데 있지만 쓸데 없는데 GUI를 부분적으로 코딩하고 싶지는 않습니다. 그런 다음 다른 툴킷으로 다시 작성해야한다는 것을 알고 있습니다.

나는이 프로그램을 C++로 작성했으며, C에서 GUI 부분을 쓰거나 다른 것을 쓰고 싶지 않기 때문에 툴킷이 C++을 지원해야한다는 점에 유의해야한다.

또한 플랫폼 간 툴킷이 단일 플랫폼 툴킷보다 더 좋을 것입니다. 그러나 단일 플랫폼 툴킷이어야한다면 리눅스 용으로 선호 할 것입니다.

마지막으로 나는 닫힌 소스 툴킷에 대한 오픈 소스 툴킷을 선호합니다.

그 이상으로 나는 추가 할 것이 아무것도 없다고 생각합니다. 당신의 시간과 대답을 미리 감사드립니다.

답변에 기반을 두었습니다. Qt와 wxWidgets를 모두보고 더 많은 호소력을 보일 것입니다. 여러 답변을 수락 할 수는 있지만 받아 들일 수는 없지만 2 가지를보고 있기 때문에 대답 중 하나만 받아들이면 아마도 1 ~ 2 주 정도 걸릴 것입니다. 툴킷을보고 생각한 것입니다. 나가 나가고 싶은 밖으로.

답변

26

제 생각에 Qt는 가장 실망스럽고 가장 완벽한 기능을 갖춘 툴킷입니다. 그것도 완전히 크로스 플랫폼. Qt는 2009 년 3 월에 버전 4.5가 출시되는 시점에 LGPL 라이선스를받을 예정입니다. 현재는 GPL 및 상용 라이센스 버전에서만 제공됩니다.

Qt의 GUI 디자이너가 좋습니다. 그것은 유틸리티 펑션 (씬 그래프 라이브러리, 번역 지원, 내장 자바 스크립트 엔진, 빌트인 WebKit 라이브러리)을 가지고 있습니다. MOC (특별한 사전 컴파일러)를 통해 런타임 바인딩 기능과 인트로 스펙 션을 C++에 제공합니다.

기술 응용 프로그램의 경우 Qwt (http://qwt.sourceforge.net/)가 필요한 것을 제공합니다. 그것은 Qt를 기반으로합니다.

GUI가없는 네트워킹 (예 : 네트워킹 등)을 원하면 Qt를 "헤드리스 (headless)"로 사용할 수도 있습니다.

다른 크로스 플랫폼 C++ 옵션은 wxWidgets이며 사용할 수 있지만 실제로 Qt와 비교할 수는 없습니다. 그것의 훨씬 더 낮은 수준의 툴킷, 사용하기 쉽지 않거나 완전히 반올림.Gtkmm은 GTK +의 정신에서 또 다른 옵션입니다.

+0

또 다른 C++ 옵션이 있습니다 : FLTK. 분명히 OpenGL 응용 프로그램을 대상으로하지만 완전한 기능을 갖춘 C++ GUI API이며 수정 된 LGPL (정적 연결 예외가 있음)이 적용됩니다. – greyfade

+0

Gtkmm도 창에서 작동합니다. – drby

+1

나는 Qt 제안을 두 번째한다. 제 경험상, Qt는 사용 가능한 최고 품질의 크로스 플랫폼 GUI 툴킷입니다. –

1

Qt. 또한 Qt 위에 구축 된 KDE을 사용할 수 있습니다.

+0

어쩌면 이것은 바보 같은 질문 일지 모르지만 KDE는 리눅스가 아닙니다. –

+0

어리석은 질문이 아닙니다 .--) KDE는 리눅스에서 거의 대부분 사용되지만 KDE 라이브러리를 사용하여 응용 프로그램을 작성할 수 있으며 원칙적으로 Windows에서 실행되는 것을 막을 수있는 방법은 없습니다. –

19

WxWidgets을 사용해보세요. 크로스 플랫폼 (Linux, Mac OS X 및 Windows에서 컴파일)으로 널리 채택되었습니다.

http://www.wxwidgets.org/

오픈 소스를 너무!

4

여러분의 응용 프로그램을 대상으로하는 OS의 네이티브 룩앤필을 원하는지 여부에 달려 있다고 말할 수 있습니다. 앞에서 말했던 Qt는 아마도 크로스 플랫폼 툴킷 중 가장 손쉽게 사용할 수 있지만 자체 위젯 세트입니다. KDE에서 실행되지 않는 한 기본 앱 모양이 &이되지 않습니다.

직장에서 wxWidgets를 사용합니다. 실망스럽고 때로는 닦지 않는 곳도 있습니다.하지만 목표로 삼고있는 플랫폼에 대한 기본적인 모양과 느낌을줍니다. 실제로 wxWidgets가 포팅 된 모든 플랫폼에서 공통 API를 제공하기 위해 기본 UI 컨트롤을 래핑합니다.

+1

플랫폼에서의 Qt의 모양과 느낌이 데스크탑과의 블렌딩 측면에서 눈에 띄게 향상되었습니다. Windows에서는 실제로 Windows 응용 프로그램처럼 보입니다. OS X, 응용 프로그램 메뉴 막대 및 모든 것과 동일합니다. –

+0

사실, 여전히 Windows 대상과 Mac 대상에 대해 서로 다른 클래스 집합을 사용하게됩니다. OS X 용 QMacStyle과 Windows 용 QWindowsXPStyle에서, wxWidgets에는 모든 플랫폼에 대한 단일 API가 있습니다. –

+0

Qt에서 스타일이 어떻게 작동하는지 오해합니다. 실제 API는 동일합니다. 스타일 엔진은 별도의 구성 요소이며 흔히 손댈 필요조차 없습니다. 특별한 동작을 전달하는 유일한 경우는 wx가 처리하지 않는 사용자 지정 그리기 위젯을 스타일링하는 것입니다. –

3

wxWidgetsDialogBlocks과 함께 사용하는 것이 좋습니다. 정말 멋진 시각적 GUI 빌더입니다.

wxWidgets의 가장자리는 거칠지 만 개발 커뮤니티는 매우 적극적이며 버그 리포트/질문/기여에 매우 민감합니다.

6

아무도 GTKmm에 댓글을 달지 않았습니다. 그것은 GTK +의 C++ 화신이며, 사용하는 것은 정말 기쁩니다. 또한 Qt를 사용했지만 지저분한 신호/코드 연결, moc_XXX 생성 파일 등을 좋아하지 않습니다. GTKmm에는 신호 등이 있지만 전처리 단계는 아니며 거의 모든 Qt 툴킷이 제공 할 수 있습니다. 그래픽 분야.

+0

Linux에서 Gtk가 더 일반적이라는 사실은 말할 것도없이 사용자는 애플리케이션의 모양과 느낌에 더 익숙해집니다. – Lalaland

+0

CMake를 사용할 때 'moc'물건은 자동으로 처리되며 사용자의 관리가 필요하지 않습니다. – antonone

4

나는 동일한 질문이있어서 좋은 GUI 툴킷을 찾았다.

결국 GUI 툴킷으로는 충분하지 않다는 것을 알았습니다. 빌드 환경, IDE 통합 및 네트워크 소켓 및 파일 I/O와 같은 하위 레벨 기능을 제공하는 완전한 플랫폼 독립적 솔루션이 필요합니다.

검색 결과가 없습니까? 거의 9 년 동안 Qt를 사용했으나 (이제는 GUI에 대해서만 첫 해를 보냈습니다), 이제로드 밸런싱, 대규모 멀티 스레딩 및 이미지 처리 기능을 갖춘 매우 복잡한 네트워킹 응용 프로그램이 있습니다.

나 같은 전문적인 지원을받는 상용 사용자로 Qt를 사용하거나 GPL 및 LGPL (상업적 사용이 허용되는)으로 4.5로 프로젝트를 시작할 수 있습니다.

wxWidgets 및 GTK ++와 같은 다른 대안은 GUI 프로그래밍을위한 매우 좋은 선택입니다.

잘 문서화되고 완벽한 솔루션을 원한다면 Qt를 선택하십시오.

안부, 3DH

0

나는 wxWidgets (툴킷) + wxFormBuilder (GUI 디자이너) + eclipse (IDE)을 사용합니다. 모든 도구는 크로스 플랫폼이며 무료입니다.

관련 문제