문제

나는 지출에 이 공휴일을 작성하는 학습 Qt 응용 프로그램.나는에 대해 읽기 Qt 디자이너는 단 몇 시간 전에 저에 궁금:사람들은 무엇을 쓰면 실제 응용 프로그램에서는 Qt 사용하여 디자인에 그들의 Gui?사실,사람들은 어떻게 디자인 Gui 니까?

나는 하나,발견하는 코드를 작성하여 손 개념적으로 사용하는 것보다 더 간단해 Qt 디자이너지만,복잡한 Gui 디자이너 의미가 있습니다.큰 그리고 수도를 사용하여 가능한 디자이너,그러나 시간 그들은 매우 어려운 일이 관리하는 복잡성이 증가한다(이것은 단지 내 생각).또한 다운로드 AmaroK 소스 코드를 엿보는 무슨 사람들을 하고 있었고,많은 통화를 addWidget()과 친구,그의 아무도 그 XML 파일 디자이너에 의해 만들어진(따:AmaroK 는 것을 내가 좋아하는 응용 프로그램까지 모든 플랫폼에서).

무엇을,그 다음은"오른쪽"방법을 만드는 GUI?디자 또는 코드?우리가 이것에 대한 논의,고려 다음과 같은 유형의 Gui 를:

  1. 간단하는 대화 상자를 입력의 일부를 보여 결과를 종료합니다.가정하자는 응용 프로그램 소 YouTube URL 에 다운로드 비디오를 사용자의 하드 디스크에 있습니다.정렬 응용 프로그램의 초보자 가능성이 높습니다.
  2. 중간 수준의 Gui 를 좋아하고,sticky notes 편집기와 함께 몇 가지 도구 모음/메뉴 항목이 있습니다.자 우리는 항상 당신에게 최고의 편리함 예를 들어(http://getxpad.com/).말한 대부분의 응용 프로그램의 범주에 떨어지는"유틸리티".
  3. 매우 복잡한 Gui,다음과 같 AmaroK 또는 OpenOffice.당신이 알고 그들을 볼 때 그들기 때문에 그들은 당신의 눈을 피.
도움이 되었습니까?

해결책

디자이너에 대한 우리의 경험은 QT3에서 시작되었습니다.

QT3

이 시점에서 디자이너는 주로 응용 프로그램에 컴파일 할 코드를 생성하는 데 유용했습니다. 우리는 그 목적으로 사용하기 시작했지만 모든 생성 된 코드를 사용하면 편집을 잃지 않고 더 이상 돌아가서 재생할 수 없습니다. 우리는 단지 생성 된 코드를 가져 와서 모든 것을 손으로 수행했습니다.

QT4

QT4는 디자이너에서 크게 향상되었습니다. 더 이상 코드 만 생성하지 않지만 디자이너 파일 (XML)에서 동적으로로드 할 수 있으며 프로그램의 실행중인 개체에 동적으로 연결하십시오. - 생성 된 코드는 없지만 디자이너의 항목 이름을 지정하고 코드를 깨지 않도록 이름을 고수해야합니다.

내 평가는 Mac OS X의 인터페이스 빌더만큼 유용하지 않지만이 시점에서 프로그램에서 디자이너 파일을 직접 사용하는 것을 볼 수 있다는 것입니다.

우리는 QT3 이후 디자이너로 돌아 가지 않았지만 여전히 프로토 타입 및 디버그 레이아웃에 사용합니다.

당신의 문제에 대해 :

  1. QT가 제공하는 표준 대화 상자를 사용하여 도망 갈 수 있습니다.QinputDialog 또는 QDialog 하위 클래스 인 경우 사용하십시오. qbuttondialogbox버튼에 적절한 플랫폼 층이 있는지 확인합니다.

  2. 제한된 디자이너 기능으로 XPAD와 같이 더 제한된 일을 할 수 있습니다.

  3. 나는 당신이 디자이너와 함께 OpenOffice와 같은 것을 쓸 수 있다고 생각하지는 않지만 아마도 그것이 요점이 아닐 수도 있습니다.

텍스트 편집기와 마찬가지로 디자이너를 다른 도구로 사용했습니다. 한계를 찾으면 해당 새로운 문제에 대한 다른 도구를 사용해보십시오. 나는 디자이너의 장점 중 하나가 프로그래머가 아닌 다른 사람이 레이아웃을 할 수 있다는 것입니다.

다른 팁

내 경험에 Qt 디자이너와 기타 툴킷/UI-구:

  • UI 도구 속도 작동합니다.
  • UI 도구를 쉽게 조정할 레이아웃니다.
  • UI 도구를 쉽게 만들/이 가능한 프로그래머가 아닌 작업에 UI 디자인.

복잡성은 수에서 처리하는 UI 도구를 파괴하여 디자인으로 여러 UI 파일이 있습니다.포함하는 작은 논리 그룹의 구성요소에서 각각의 파일을 각 그룹이 하나의 위젯을 구축하는 데 사용되는 완벽한 UI.Qt 디자이너'의 개념의 위젯을 추진할 수 있는 데 도움이 됩니다.

지 않았을 발견하는 프로젝트의 규모는 어떤 차이입니다.당신의 경험을 달라질 수 있습니다.

파일을 만들는 UI 도구(나는 당신이 쓸 수 있는 손으로 그들을 만약 당신이 정말로 원)될 수 있는 동적으로드 실행 시간(Qt 및 프로그램을 모두 이 기능을 제공하).이할 수 있음을 의미하는 레이아웃을 변경하고 테스트하지 않고 다시 컴파일해야 합니다.

궁극적으로 생각 모두는 원시 코드고 UI 도구들을 효과적으로 사용할 수 있습니다.그것은 아마존에 많이 환경 toolkit/는 UI 도구,그리고 물론 수 있습니다.내가 좋아하는 UI 도구기 때문에 그들은 나를 얻고 빠르게 실행하고도 나중에 변경합니다.

내가 일하는 조직은 몇 년 전에 GUI 응용 프로그램을 QT에 포팅했습니다. 언급 할 가치가있는 몇 가지 측면이 있다고 생각합니다.

  • 적어도 그 시점에서 QT 디자이너와의 협력은 현실적인 옵션이 아닙니다. QT 디자이너와 함께 할 수없는 기능이 너무 많았습니다.
  • 보존되어야 할 규칙과 구조는 QT 디자이너의 사용을 막았다.
  • 디자이너없이 시작하면 돌아 오기가 어려울 수 있습니다.
  • 그러나 가장 중요한 측면은 프로그래머가 Gui IDE를 사용하지 않고 VI 또는 EMAC를 사용하여 프로그래밍하는 데 매우 많이 사용되었다는 것입니다.

내 자신의 경험. QT3.3을 사용하는 4 년은 디자이너에서 대화에서 동적 행동이 불가능하다는 것입니다.

QT 디자이너를 사용하지 않고 QT에서 복잡한 GUI를 작성하고 유지했다고 말하면서 QT 디자이너를 좋아하지 않기 때문이 아니라 그런 식으로 작업하지 않았기 때문입니다.

QT를 시작했을 때 Dreamweaver와 FrontPage 및 기타 시각적 HTML 도구에 대한 끔찍한 경험이 있었으며 까다로운 레이아웃을 위해 Photoshop에 의존하는 코드를 선호하는 끔찍한 경험을 가졌습니다. 문제.

비주얼 코드 IDE에는 시각적 도구를 유지하려고 할 위험이 있지만 잘 이해되지 않은 방식으로 코드를 조정해야합니다.

예를 들어, iPhone 개발을 배우는 것은 'Magic'시각적 물건 ( 'Connections Inspector의 빈 원에서 인터페이스 빌더 창의 개체로 드래그 ...')을 때리는 것이 실망 스러웠습니다. 나) 평범한 오래된 코드로 이해합니다.

QT와 함께 행운을 빕니다 - 훌륭한 툴킷이지만 사용하고 QT 제작자는 훌륭한 IDE 인 것 같습니다.

예를 들어 그래픽 디자이너를 사용하는 이유 중 하나는 Win32에서 레이아웃 관리자가 부족했기 때문이라고 덧붙였습니다. 절대적인 포지셔닝 만 가능했고, 손으로 그 일을하면 방금 빨려 들었을 것입니다.

GUI 앱을 위해 Delphi에서 Java로 전환 한 이후 (2002 년) 디자이너를 더 이상 사용한 적이 없습니다. 나는 레이아웃 관리자를 훨씬 더 좋아합니다. 그리고 예, 보일러 플레이트 코드를 얻지 만 UI 디자이너의 객체를 움직이는 것은 보일러 플레이트를 변경하는 것만 큼 많은 시간이 걸릴 수 있습니다. 게다가, 나는 느린 IDE에 붙어있을 것이다. Java/C# 케이스를위한 것입니다. QT (특히 QT4)의 경우 적용되지 않습니다. QT3의 경우 왜 생성 된 코드를 편집 해야하는지 궁금합니다. 다른 파일에 코드를 추가 할 수 없었습니까? 어떤 이유로?

논의 된 사례에 대해 : 1) 손으로 코드 된 GUI는 적어도 라이브러리를 알고 있다면 더 빨리 쓰는 것이 더 빠릅니다. 당신이 초보자이고 당신이 그들을 모른다면, 당신은 당신이 사용하는 API를 배울 필요가 없기 때문에 시간을 절약하고 디자이너와 함께 배울 수 있습니다. 그러나 "Learn Less"가 핵심 요소이므로 두 경우 모두 손으로 코딩 된 GUI라고 말합니다.

2) 메뉴 막대는 코드를 작성하는 데 상당히 짜증이납니다. 또한 가속기 등과 같은 세부 사항을 생각해보십시오. 그럼에도 불구하고 그것은 당신이 익숙한 것에 달려 있습니다. 얼마 후, 해당 보일러 플레이트를 디자이너를 포인트 앤 클릭하여 모든 속성을 수정하는 것보다 더 빠를 수 있지만 타자기에 실제로 입력 할 수있는 경우 UNIX 명령을 타이핑하는 관리자와 같이 더 빠릅니다. GUI 사용).

3) 사례 #2에 대한 답을 이것으로 확장했습니다. Win32 플랫폼의 경우 Win32 리소스를 생성하는 설계자를 사용하는 것이 가능할 수 있습니다. 아마도 더 빨리로드 할 수 있습니다 (그것에 대해 전혀 모른다).

그러나 QT 디자이너를 사용하는 데있어 잠재적 인 문제를 언급하고 싶습니다. 실제 사례 : 복잡한 Java 대화 상자 (프로그래머의 텍스트 편집기를위한 환경 설정 대화 상자)를 많은 옵션으로로드하는 데 몇 초가 걸렸습니다. 올바른 수정은 프로그래머가 GUI를 구축하기 위해 각 기본 설정에 별도의 메소드를 추가하여 그들을보고 싶어 할 때만 각 탭을로드하는 것이 었습니다.

디자이너와 함께 모든 탭과 탭 스위처를 디자인한다면 쉽게 할 수 있습니까? 손으로 코딩 된 GUI가 더 많은 유연성을 제공하는 비슷한 예가있을 수 있으며, 큰 앱에서는 최적화 목적으로 만 필요할 수 있습니다.

GUI를 만들기 위해 디자이너를 사용하는 주요 이점 중 하나는 다른 프로그래머가 복잡한 코드를 탐구 할 필요없이 양식과 위젯을 쉽게 변경하거나 유지할 수 있다는 것입니다.

쓰기 코드가 그래픽 환경에서 객체를 조작하는 것보다 간단하다고 말하는 것은 이상합니다. 쉬운 일이 아닙니다.
디자이너는 당신의 삶을 더 쉽게 만들기 위해 거기에 있으며, 장기적으로 코드를 더욱 관리 할 수있게합니다. 디자이너가 UI가 어떻게 생겼는지 확인한 다음 코드를 읽고 어떻게 생겼는지 상상하려고하는 것이 더 쉽습니다.
현재 QT를 사용하면 디자이너 내에서 거의 모든 것을 수행 할 수 있고 할 수없는 일을 거의 할 수 있으므로 생성자에서 몇 줄의 코드로 수정할 수 있습니다. 예를 들어 가장 간단한 예제 - 신호 슬롯 연결을 추가하십시오. 디자이너를 사용하면 더블 클릭만큼 간단합니다. 디자이너가 없으면 신호의 올바른 서명을 조회하고 .h 파일을 편집 한 다음 .cpp 파일에 코드를 작성해야합니다. 디자이너를 사용하면 이러한 세부 사항을 넘어서 실제로 중요한 내용 인 응용 프로그램의 기능에 중점을 둘 수 있습니다.

GUI 위젯을 개발하기 위해 디자이너에게 먼저 돌아가는 것을 좋아합니다. 다른 게시물에서 언급했듯이 더 빠릅니다. 또한 즉각적인 피드백을 받으면 "올바른 모습"이 있는지 확인하고 사용자에게 혼란스럽지 않습니다. 디자이너는 다른 툴킷보다 QT를 선택하는 주요 이유입니다. 나는 주로 디자이너를 사용하여 일회성 대화 상자를 만듭니다.

그렇게 말하면서, 나는 메인 창과 복잡한 위젯을 손으로 수행합니다. 나는 이것이 트롤 테크의 의도의 방식이라고 생각합니다. qformlayout 입력 대화 상자를 쉽게 프로그래밍 할 수있는 클래스입니다.

그건 그렇고, QT 4의 디자이너는 QT 3의 디자이너가 아닙니다. 나는 그 방식이 좋다. 새로운 크로스 플랫폼 IDE는 QT Creator라고합니다.

그것은 오래된 게시물이지만 Amarok에서 파생 된 음악 연주자 인 Clementine을 보는 것이 좋습니다. 그들은 QT4를 사용하고 내가 볼 수있는 것에서 UI 폴더 SRC 프로젝트 폴더. 에서 UI 폴더는 모든 종류의 .ui 파일을 기대할 수 있습니다. Clementine을 컴파일하고 시작하면 GUI가 상당히 복잡하고 상당히 훌륭하다는 것을 알 수 있습니다.

나를 위해, 그것은 얼마나 많은 양에 달려 있습니다 논리 위젯/GUI에 캡슐화됩니다. 단순한 형태에 관한 것이라면 Qtdesigner를 사용하는 것이 좋습니다.

복잡한 점검이나 상호 작용이 포함되어 있으면 프로그래밍하는 경향이 있습니다.

우리는 GUI를 만들어야하는 경우 QT 디자이너를 사용하고 있습니다.
문제는 특정 작업에 대한 작은 위젯 만 만들어 클래스 디자인에서 할 수있는 것처럼 "Parent-Gui"로 모이게하는 것입니다.

이런 식으로 위젯은 재사용 가능하며 모듈 식 방식으로 GUI에 사용할 수 있습니다. 각 위젯이 전송하는 신호와 제공하는 슬롯을 지정하면됩니다.

우리는 또한 빌드 프로세스 중에 생성 될 수있는 .ui-files를 생성하고 있습니다. 지금까지는 해당 파일을 손으로 편집 할 필요가 없었습니다.

UI의 다른 부분을 구축하십시오
qtdesigner를 사용하는 다른 .ui 파일에서
그런 다음 코드로 그들을 모으고 합병증을 추가하십시오.

QT 디자이너에는 할 수없는 일이 있습니다. 코드에서만 할 수 있습니다.
그래서 QT 디자이너는 도구 체인.

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