2010-05-18 5 views
1

내 프로젝트에서 프로그래밍을 통해 사용자 인터페이스를 생성하려고합니다. 이 UI의 확장 성은 매우 중요한 요구 사항입니다.프로그래밍 사용자 인터페이스 조언?

지금까지 UI를 생성하기 위해 2 차원 그래픽을 사용하고 있습니다. 다른 해결책이있을 수 있다고 생각하지만 잠시 동안 나는 두 가지만 알고 있습니다.

첫 번째 것은 내 UI에서 각 2 차원 그래픽의 X, Y 좌표를 제공합니다 (각 그래픽의 X, Y 좌표를 계산하지 않으므로이 솔루션을 선호하지 않습니다. 이 작업을 쉽게 수행 할 수있는 논리가 있음)

두 번째 항목 (현재 현재 사용하고 있습니다)은 항목의 크기에 따라 내용을 구성하는 레이아웃을 사용하고 있습니다. 이 솔루션에서는 각 항목의 X, Y 좌표를 계산할 필요가 없습니다. (레이아웃은 나를 위해 이것을하고 있습니다.) 그러나이 접근법에는 자체 함정이있을 수 있습니다.

저는 사용자 인터페이스 프로그래밍에 새로운 경험이 있습니다. 이 문제에 대해 조언 해 주시겠습니까?

+1

응용 프로그램의 기능은 무엇입니까? 또는 어떤 종류의 UI를 만들려고합니까? 사람들이 더 자세한 정보를 제공 할 수 있다면 더 좋은 답변을 줄 수 있다고 생각합니다. – Jujjuru

+0

Train Traffic Controller 소프트웨어 프로젝트에서 일하고 있습니다. 필자는 대화식 사용자 인터페이스에 대한 실제 철도 인프라 모델링을 담당합니다. 따라서 UI는 철도, 철도 스위치, 신호, 교차로 교차로 등으로 구성됩니다. – onurozcelik

답변

0

Visual Studio 에서처럼 GUI를 디자인 할 수있는 Qt 디자이너 (GUI 작성기)가 있습니다.

손으로 X, Y를 계산하는 것은 좋지 않은 접근입니다. 절대적으로 허용 할 수 없습니다.

+0

미리 정의 된 Qt 위젯을 사용하고 있지 않습니다. 그래서 Qt Designer는 내 문제를 해결하지 못합니다. – onurozcelik

2

내가 따르는 일반적인 규칙은 절대 레이아웃을 사용할 특별한 이유가 없다면 항상 레이아웃 컨테이너를 사용해야한다는 것입니다. 절대 레이아웃을 사용하는 유일한 순간은 빌트인 레이아웃 관리자와 쉽게 맞지 않는 이상한 사용자 레이아웃을 구현할 때입니다.

레이아웃 관리자는 여러분의 삶을 훨씬 쉽게 만듭니다. 창의 크기를 조절하거나 다양한 크기의 내용을 처리하는 것은 레이아웃 관리자를 사용하면 훨씬 쉽게 처리 할 수 ​​있습니다.

qt의 레이아웃에 문제가있는 것을 기억하지 못합니다.

0

바퀴를 다시 만들지 마십시오. 예를 들어 UI 개체에서 개체를 상속합니다. 패널을 사용하여 해당 객체의 UI 기술을 사용할 수 있습니다. 나머지 컨테이너 또는 기타 레이아웃 객체에 대해서

1

레일 트랙이 실제 트랙 레이아웃의 설계도 일 필요가 있다고 가정하고, 모든 그리드에 배치 된 구성 요소를 만들 수 있으며 각 그리드에 대해 구성 요소를 만들 수 있습니다 당신이 요구 사항에 따라 단순한 레이아웃 알고리즘을 구현한다면, 하나의 그리드 셀은 하나의 실제 컨트롤 만 가질 수 있고 셀은 더 작게 만들 수 있습니다. 무엇이든지간에 왼쪽에서 오른쪽/위에서 아래로 셀 안에 컨트롤을 배치하십시오. 또한 셀 자체를 하위 셀로 세분화하여 컨트롤을 제한 할 수도 있습니다. 따라서 전체 크기를 조절할 때 각 셀은 크기를 알려야합니다.

또한 트랙 레이어를 컨트롤 레이어와 분리하는 등 디스플레이에 레이어를 구현하는 데 도움이 될 수 있습니다.

매우 구체적인 "비 전통적"사용자로 작업하고 있으므로 문제에 맞는 솔루션이 필요합니다.

이 작업을 이미 수행하고 있는지는 잘 모르겠지만 UI 구성을위한 데이터 기반 접근 방식을 구현할 수 있을지 생각합니다. 레이아웃을 하드 코딩하지 말고, 레이아웃 기능을 실제 작동중인 부분과 분리하여 쉽게 변경할 수있는 파일로 옮기십시오.

일종의 해결책이 있다고 들리지만 어디서나 배치 할 수있는 그래픽 컨트롤이 있다면 "각 그래픽의 X, Y 좌표를 계산하고 싶지 않기 때문에이 솔루션을 선호하지 않는다"고했습니다. 코드를 통해 화면을 볼 수 있지만, 사용자가 이러한 컨트롤을 배치 할 수있는 편집기를 사용하는 것은 큰 일은 아닙니다. 하드 코딩 된 값 대신 UI에 대한 구성 파일을 이미 사용하고있는 경우 특히 많은 노력이 필요하지 않을 수 있습니다.

저는 최근 스타일을 통해 qt 요소의 일반적인 모양을 바꾸는 작업을 많이 했었지만 정상적인 qt-gui 파트가 당신의 노력에 충분할 것이라고는 생각하지 않지만 QGraphicsView 보조 시스템은 아마도 잘 맞으면 잘 스케일되고 많은 수의 요소와의 상호 작용을 잘 처리하지만 자세한 내용을 알지 못하면 더 구체적인 대답을 제공하기가 어렵습니다.

관련 문제