2009-10-03 6 views
2

나는 간단한 GUI로 작업 해 왔고로드 블록을 쳤다. GUI 레이아웃 관리자를 만드는 방법에 대한 예나 읽기 가능한 소스를 찾지 못했습니다. 누군가가 Qt의 레이아웃 엔진과 같이 암호를 생성하지 못하는 소스 코드를 만들 때 어떤 자원을 알고 있는지 궁금합니다.GUI 레이아웃 관리자를 만드는 데 필요한 리소스는 무엇입니까?

+0

GUI를 만들 때 사용중인 플랫폼과 사용중인 라이브러리는 무엇입니까? – StackedCrooked

+0

나는 지옥을 위해 내 자신 만의 글을 쓰려고한다. – beta

답변

4

"레이아웃 관리자"가 의미하는 바에 달려 있으며 Qt에 익숙하지 않아서 실마리를 얻지 못합니다.

크기 조정이 가능한 창 처리와 같은 것을 의미하는 경우 관련 용어는 "제약 조건 해결사"라고 생각합니다. 그만큼 많이 보지는 못했지만 GUI 제약 해결자가 linear programming - Simplex algorithm과 그 모든 것을 기반으로한다고 저는 믿습니다. Gaussian Elimination으로 처리하는 것이 가능할 수도 있지만, 이에 대해서는 확신이 없습니다.

"GUI 레이아웃 선형 프로그래밍"에 대한 빠른 검색을 기반으로 CiteSeerX의 this paper이 흥미 롭습니다. PDF 다운로드가 있습니다. 당신이 어설프게 좋아하는 것을 좋아하지 않는다면, 글쎄, 적어도 한눈에 무거운 수학은 아니지만, 나는 그것이 가벼운 독서가 아닌 것으로 의심한다. 나는 당신이 나에게 관심을 가지기 때문에 곧 알아낼 것이라고 생각한다.

+0

그게 내가 찾고있는거야! 용어가 잘못 사용되어 죄송합니다. 이것은 나를위한 미지의 영역입니다. 감사. – beta

+0

+1 용지에 대한 링크입니다. 이 모든 종류의 종이는 유료화 벽 뒤에 있습니다. –

+0

@ graham.reeds : citeseer는 기사를 찾기에 훌륭한 사이트이며 그렇지 않은 경우 무료로 제공되지 않습니다. 나는 나의 석사 과정에서 일할 때 많이 사용했다. –

2

현재 Mozilla XUL 용 Windows 포트를 만들고 있습니다. 내 접근 방식은 언급 된 스티브 (Steve)와 같은 선형 프로그래밍 기법을 포함하지 않지만보다 객체 지향적 인 접근 방식입니다. 이것은 Composite 및 Decorator 디자인 패턴을 기반으로합니다.

복합 패턴을 사용하면 자식 컨트롤이있는 컨트롤을 만들 수 있으며 차례대로 자식 컨트롤을 만들 수 있습니다. 컨트롤은 지정된 클라이언트 사각형 내에 자식 컨트롤을 배치합니다.

예를 들어 자식 컨트롤을 가로로 배치하는 레이아웃을 구현한다고 가정합니다. 그런 다음 레이아웃 알고리즘은 각 하위 컨트롤의 x 오프셋을 계산하기 위해 각 하위 컨트롤의 너비를 계산해야합니다.

컨테이너의 너비 계산은 하위 컨트롤의 너비 합계를 반환하여 수행됩니다.

Decorator 클래스를 사용하여 추가 속성을 추가 할 수 있습니다. 예를 들어, MarginDecorator는 자식 컨트롤, ScrollDecorator 스크롤 막대 등 사이에 간격을 추가 할 수 있습니다.

재미있는 일, 나는 당신에게 행운을 빌어!

관련 문제