2013-03-15 3 views
-1

현재 커다란 C++ 코드가있는 도구로 개발 중입니다. 나는 현재 Model-View-Controller (MVC) 디자인을 사용하려고 생각하고있다. 모델에는 모든 C++ 코드가 포함되어야합니다. 뷰는 사용자가 보는 것으로 컨트롤러는 기본적으로 모델과 뷰 사이의 접착제입니다. 내가 찾고기존 대형 C++ 코드 용 그래픽 사용자 인터페이스 빌드

기능은 다음과 같습니다 MVC와

  • 확장 디자인
  • 대한 텍스트 사용자 인터페이스 (TUI), 터미널 및 그래픽 사용자 인터페이스 (GUI) 옵션
  • GUI는로드해야합니다 일부 텍스트 파일
  • GUI는 일부 알고리즘을 실행하고 일부 출력 값을 생성하기 위해 사용자의 텍스트 입력을 사용해야합니다.
  • GUI는 결국 팝업으로 저장하고 그래프를 표시해야합니다 예를 들어 GNU 그림.
  • 는 C++ 코드 (라이브러리, 빌드 옵션 포함) 이클립스에서 잘 작동 새로운 알고리즘은 C++ 코드에 추가됩니다 시간에
  • , 이것은 큰 문제가되지해야한다. > QT 창조주 거의 QT의 장점에도 불구하고 이클립스에서 이동하는 것을 지저분한 만드는 IDE의 사용을 요구 -

    • QT가 :

  • 은 지금은 3 개 솔루션을 발견했다. QT는 GUI를 둘러싼 이상한 구조를 요구하는 것 같습니다. 그래서 컨트롤러를 만드는 방법에 대해 혼란 스럽습니다. 이클립스 플러그인은 현재 죽었습니다. QT와 Nokia의 FTP에서 찾을 수 없습니다.
  • GTKmm -> C에서 제공되며 일부 항목이 필요한 이유를 이해하기가 가끔 어렵습니다. MVC 디자인에서이 작업을 할 수 있다고 생각합니다.
  • 공유 라이브러리 (JNI)를 사용하여 Java 스윙 -> 약간 이상한 Java 및 C++을 사용합니다. JNI를 사용하면 기존 C++ 코드에 대한 추가 작업이 필요할 수 있습니다.

자바 스윙에 대한 경험이 거의없고 QT 및 GTKmm에 대한 경험이 거의 없습니다.

경험이없는 UI 개발자로서 이미 기존 C++ 코드가있는 경우 GUI를 만드는 가장 좋은 솔루션은 무엇입니까?

+2

"Qt는 거의 IDE 사용을 요구합니다."- 그렇지? 원한다면 IDE를 사용하십시오. 그러나 당신을 강요하는 것은 없습니다. 이클립스에 익숙하다면 그렇게 할 것이다. (UI 디자이너는 "이상한"것이고 결코 직접 사용하지 않습니다. 텍스트 편집기를 사용하여 일반 Qt C++에서 직접 수행 할 수 있습니다.) – Mat

+0

그래서 '거의'라고 말한 이유는 이클립스를 사용하는 것이 가능하다는 것입니다. 일부 라이브러리를 가져 와서 Qt의 include includes를 사용하고 Eclipse 또는 텍스트 편집기에서 작업하기 시작하십니까? 당신의 의견에 감사드립니다. – Bear

+0

Qt C++는 C++입니다. 특별한주의가 필요한 몇 가지 빌드 관련 사항이 있지만 그게 전부입니다. Vim과'qmake' (또는 Emacs 나 Notepad)로 GUI를 만들 수 있습니다. – Mat

답변

1

귀하의 3 가지 옵션 중, 나는 분명히 Qt로 갈 것입니다. Qt는이 기능 GUI를 할 수 있도록

기본적으로, 당신은 위젯의 QApplication, show() 일종의를 시작하고 다음 응용 프로그램 ( QApplication::exec())에 대한 이벤트 루프를 시작해야합니다.

http://qt-project.org/doc/qt-4.8/qapplication.html#exec

Qt는

http://qt-project.org/doc/qt-4.8/qapplication.html

은 매우 유연하고 잘 생각하고, 강한 다음이있다. 그리고 그것은 놀라운 문서를 가지고 있습니다.

기존 C++ 데이터 구조와 상호 작용하려면 GUI 용 기본 위젯 중 하나로 멤버 변수로 구성하면됩니다. 그런 다음 정보에 액세스하여 표시하려면 케이크 한 장입니다.

http://qt-project.org/doc/qt-4.8/qmainwindow.html

Qt는의 GUI 요소의 대부분을

http://qt-project.org/doc/qt-4.8/qwidget.html

은보기 만의 역할을하고, 어떤 최종 모델 및 컨트롤러 설정은 없다. 그것은 개발자에게 맡겨져 있습니다. 데이터베이스 나 트리 또는 항목 그리드를 표시하는 경우 model/view flow이 있지만 응용 프로그램에 적용되지 않는다고 생각합니다.

신호와 슬롯을 이해하고 사용하는 것은 Qt에서 대화식 GUI를 만드는 데 필수적이며 매우 어렵습니다. 거기 QWidgets의 모든 다른 종류에 최대 읽기

http://qt-project.org/doc/qt-4.8/qobject.html#details

http://qt-project.org/doc/qt-4.8/signalsandslots.html

, 당신은 당신이 당신의 질문에 나와있는 각 요소를 찾을 수 있어야합니다. 여기

당신이보고해야 할 몇 가지 있습니다 :

http://qt-project.org/doc/qt-4.8/qtextstream.html

http://qt-project.org/doc/qt-4.8/qtextedit.html

http://qt-project.org/doc/qt-4.8/qlineedit.html

http://qt-project.org/doc/qt-4.8/qlabel.html

물론 Qt를 함께 제공되는 튜토리얼과 예제를 통해보세요.

http://lists.trolltech.com/qt-interest/2002-12/thread00068-0.html

또한, Qt는 창조주와 이클립스를 모두 사용한 개발자로서, 내가 Qt는 창조주를 선호하고, Qt는 창조주에서 일하기 프로젝트를 포팅 Qt를로의 gnuplot을 사용하여 매우 직선하는 방법 앞으로. Eclipse의 빌드 체인을 변경하여 Qt 라이브러리와 QMake를 사용하려는 경우에도 가능합니다.

http://therning.org/magnus/archives/1023

http://qt-project.org/doc/qt-4.8/qmake-project-files.html#declaring-other-libraries

http://qt-project.org/doc/qt-4.8/qmake-project-files.html

은 그게 도움이되기를 바랍니다. 행운을 빕니다.

+0

귀하의 의견에 진심으로 감사드립니다. 그것은 QT에서 작동하도록하는 방법과 함께 저의 투쟁에서 저를 도왔습니다. 고맙습니다. – Bear

+0

기꺼이 도와 드리겠습니다. – phyatt