2013-08-13 2 views
1

저는 처음에 Mac과 Linux에 배포 될 Qt 응용 프로그램을 작성하고 있습니다. 저는 리눅스로 개발하고 있습니다. 그래서 모든 위젯과 레이아웃이 내가 원하는 방식으로되어 있는지 항상 확인해야합니다. 불행히도, 나는 오랜 기간 동안 개발을 위해 Mac에 손을 대지 못했습니다. 위젯과 레이아웃이 Mac에서 좋게 보이기 위해 사소한 (때로는 주요) 조정이 필요한 경우가 많이 있습니다. Mac 특정 UI를 구축하거나 플랫폼 감지 기능을 사용하지 않은 경우 어떻게하면 더 쉽게 만들 수 있습니까? 가장 큰 문제는 글꼴 크기, 위젯 간 간격 및 위젯 정렬과 같은 문제입니다. 어떤 팁? 나는 Qt를위한 스타일 가이드가 될 것이라고 생각했지만 어쩌면 잘못된 질문을하고있을뿐입니다.플랫폼간에 일관된 Qt 스타일을 유지하는 방법은 무엇입니까?

+0

스타일 시트를 사용하고 있습니까? http://qt-project.org/doc/qt-4.8/stylesheet.html – TheDarkKnight

답변

1

방금 ​​CSS와 관련된 질문과 비슷한 답변을 작성했습니다. 하지만 일반적으로 사용자 인터페이스의 범위에 따라 다릅니다. '모든 픽셀이 문제가되는'레벨에 있습니까? 아니면 작은 문제로 살 수 있습니까?

QT는 인터페이스가 동일하게 보이도록하기 위해 많은 작업을합니다.뿐만 아니라 네이티브 컨트롤이 어떻게 보이는지에 관계없이 응용 프로그램이 실제로 다른 플랫폼에서 동일한 방식으로 보이게하는 CSS와 같은 기능을 가지고 있습니다.

이것은 멋진 유틸리티를위한 매우 흥미로운 접근 방법 일 수 있습니다.하지만 복잡한 데스크톱 응용 프로그램에 대해 이야기 할 경우 사용자를 가능한 한 많이 네이티브 컨트롤로 유지하는 것이 정말 옳은 방법이라고 생각합니다 (사용자 경험, 응용 프로그램이 주변에 얼마나 잘 들어 맞는지 등).

문제가 시작되는 곳. 불행히도 Qt 레이아웃 관리자가 Linux/MacOSX/Win32에서 작동하는 방식은 정확히 동일하지 않습니다. 어떤 경우에는 레이아웃 자체의 너비를 '1'로 계산하는 것과 같이 일부 플랫폼에서는 명백한 버그가 있습니다. 이는 완전히 잘못되었습니다.

는 제어 boundingRects에 대한 적용 같은, 당신은 완전히 또한 당신이 (내 경험)을 해결할 수있는 방법이 방법을 요약하려고합니다 잘 언급 글꼴 등

있습니다. 경험 많은 Qt 개발자가 가입하면 더 행복해 질 것입니다. 그래서 매우 재미 있고 일반적인 질문이기 때문에 일종의 WiKi를 만들 수 있습니다.

1) 플랫폼별로 UILoader 및/또는 다른 UI 집합을 사용하십시오.

동적 인 UI 로딩을 사용하는 경향이 있습니다. 정적으로 컴파일 된 것이 아니라 꽤 오래되었습니다. 보기 및 컨트롤러 클래스를 별도로 유지하는 것과 같은 몇 가지 이유가 있습니다. UI 파일 세트 만 변경하여 '특별'버전을 제공하는 기능입니다. 요점은 UI 파일을 플랫폼별로 작성하여 모든 플랫폼 특성을 고려하고 실제로 인터페이스를 잘 살펴보십시오. .pro 파일의 조건에 따라 정적 UI에서 동일한 작업을 수행 할 수 있습니다.

2) 눈에 보이는 변경 사항을 숨기려면 '넓은'인터페이스를 만드십시오. 나는 'wide'가 올바른 단어인지 확신 할 수 없지만 UI에서 많은 차이점을 발견 할 수있는 한계점에 Qt를 밀어 넣지 않는다는 아이디어는 대부분 폼/대화 상자를 매우 간단하게 유지한다는 것을 의미합니다 구성 요소 사이에 충분한 공간이 있어야합니다. 그게 하나의 큰 단점을 가지고 있습니다 - 모든 UI는 일반적으로 플랫폼 당 신중하게 수행 할 수있는 (boundingRect의 의미에서) 더 많은 공간을 차지합니다.

3) CSS 사용법 ... 솔직히 말하면 안돼 .. CSS가 실제로 일하는 몇 가지 아주 훌륭한 프로젝트를 보았습니다.하지만 각 플랫폼마다 CSS가 여전히 분리되어 있고 때로는 사실 매우 복잡한/조건부입니다. 다른 레이아웃의 동일한 컨트롤에는 다른 스타일이 필요합니다.

관련 문제