2016-07-14 3 views
3

홈페이지 질문Qt 위젯의 크기를 올바르게 조정하는 방법은 무엇입니까?

어떤 위젯의 기본 크기를 제공하고 있는지 확인 그들은 계약을 확장 할 수있는 "오른쪽"방법, 또는 이들을 수용하기 위해 추가 여부 충분한 공간이있는 경우 고정되어?

어떻게 Qt는이 크기 조정 알고리즘이는 QWidget을 통해 자신의 이상적인 크기에 아이를 물어 ... 레이아웃이 시작 이런 식 것처럼 보인다 Qt는 설명서를 읽은 후

작동 생각 :: 힌트 (sizehint)을 방법. 레이아웃에 추가 공간이 있거나 공간이 충분하지 않으면 각 위젯의 크기 조정 정책 (QWidget :: sizePolicy), 최소 크기 (QWidget :: minimumSize) 및 최대 크기 (QWidget :: maximumSize)에 따라 크기를 조정할 위젯을 결정합니다. .

왜 QWidget :: setSizeHint 메소드가 없습니까?

내 이해가 정확하다면 각 위젯에서 sizeHint, sizePolicy, maximumSize 및 minimumSize를 설정하면됩니다. 모든 것이 올바르게 작동하는 것 같습니다. 그렇다면 setSizeHint 메소드가없는 이유는 무엇입니까?!?! ?? 물론, 필요한 모든 기능 (QTableView, QComboBox 등)을 제공하는 위젯을 사용할 때마다 확장하고 단일 메서드를 재정의 할 수는 있지만 그건 절대 우스운 것입니다.

나는 싸우고있는 사이징 문제 중 하나입니다.

왼쪽에 QDockWidget이있는 QMainWindow가 있습니다. QDockWidget에는 QTableView가 있습니다. QDockWidget/QTableView를 시작할 때 공간의 "합리적인"양을 가져 가고 싶지만 사용자가 원하는 크기로 작게 또는 크게 조정할 수 있습니다.

아쉽게도 응용 프로그램이 시작되면 QDockWidget/QTableView에 약간의 공간이있어서 가로 스크롤 막대가 필요합니다. QDockWidget의 최소 너비를 설정하는 것이 합리적인 양의 폭을 줄 수있는 유일한 방법이지만 사용자가 원하는대로 크기를 조정할 수 없습니다.

+0

당신은 많은 질문을 (그리고 조금으로 담보). 여기 실제 질문은 뭐니? –

+0

위젯의 기본 크기를 지정하고이를 수용 할 수있는 공간이 충분하지 않거나 충분하지 않은 경우 축소, 고정 또는 고정되도록하는 "올바른"방법은 무엇입니까? ... 내 경우에는 기본 크기가 최소값과 최대 값 사이에 있거나 최소값/최대 값을 원하지 않을 때 특히 그렇습니다. –

+0

게시물에있는 불필요한 자료를 잘라내어 질문 자체에 집중하십시오. –

답변

1

왜 QWidget :: setSizeHint 메소드가 없습니까? 제 생각에는

는 대신 코더가 힌트 (sizehint) 아마 하드 코딩 또는 오류 적어도 경향이 설정할 수의 컨텐츠를 바탕으로 적절한 사이즈 (또는 규칙)를 계산하는 위젯 훨씬 더 입니다.

저는 거의 위젯에서 크기를 설정하지 않아도 QSizePolicy으로 재생하는 것으로 충분했습니다. 그리고 특정 제약 조건이 필요할 때 최소/최대 크기로 게임하는 것으로 충분했습니다. 그래서 Qt 레이아웃은 언제나 위젯을 적용 할 수있었습니다.

크기 등에 몇 퍼센트의 백분율을 설정하려는 경우 stretch 매개 변수로 재생할 수 있습니다. 빈 공간이 필요할 때 spacers을 추가 할 수도 있습니다.

QWidget을 확장하여 QWidget::sizeHint 메서드를 재정의해도 원하는 크기를 변경하여 위젯 동작을 변경하고 OOD의 다형성 기술에 적합하므로 나에게 소리가 나지 않습니다.

Qt 위젯의 크기를 올바르게 조정하는 방법은 무엇입니까?은 모호한 질문이며 사용 사례에 따라 다릅니다. 대부분의 경우 좋은 레이아웃과 크기 정책을 선택하면 매우 적응력있는 GUI를 얻을 수 있습니다. Qt Designer는 레이아웃 관리가 항상 직관적이지는 않습니다 (위젯을 먼저 배치 한 다음 내부 레이아웃에서 외부 레이아웃으로 배치해야합니다). 특정 문제 소개


, 그것은 당신의 QDockWidget 창에 두 개의 위젯의 주위에 당신이 가지고있는 레이아웃 (들)의 세부 사항을 몰라도 너무 작은 얻는 이유를 말할 어렵다. 아마 QDockWidget와 특정 문제입니다 관련 질문을 참조하십시오

관련 문제