Nice programing

Qt의 양식 레이아웃 메커니즘 이해

nicepro 2020. 12. 11. 19:23
반응형

Qt의 양식 레이아웃 메커니즘 이해


Qt 데스크톱 응용 프로그램의 창보기를 처리하는 유연하고 강력한 레이아웃 메커니즘이 있습니다.

하지만 너무 유연해서 무언가 잘못되어 미세 조정이 필요할 때 거의 이해할 수 없습니다. 그리고 너무나 강력해서 형태가 어떻게 보일지에 대한 Qt의 의견을 압도하려는 시도에서 누구를 이길 수 있습니다.

그렇다면 Qt의 포지셔닝 메커니즘을 설명하거나 기사를 제공 할 수있는 사람이 있습니까?

나는 강제로 시도하고 QLabel, QPushButton그리고 QTableView보다 두 배 이상이 될 자신의 이름에 밑줄을 후행에 의해 표시, QTextBrowser가진 verticalStretch = 1아래. 위젯의 높이를 올바르게 처리하려면 어떻게해야합니까?

Google 문서에서 내 양식의 .ui 파일. 이름에서 '____'검색, QtDesigner에서 미리보기


레이아웃은 실제로 이해하기 쉽습니다. "i think":)
레이아웃에 대한 간단한 설명은 qt 책 " C ++ Gui programming with QT 2nd edition " 에서 찾을 수 있습니다.

레이아웃 및 크기 정책과 관련하여 알아야 할 사항

  • 대부분의 Qt 위젯에는 크기 정책이 있습니다. 이 크기 정책은 위젯이 어떻게 늘어나거나 줄어드는 지 시스템에 알려줍니다. QSizePolicy 클래스에서 가져 왔습니다. 크기 정책에는 수직 및 수평 구성 요소가 모두 있습니다.
  • 대부분의 위젯에는 크기 힌트도 있습니다. 이 크기 힌트는 위젯이 선호하는 크기를 시스템에 알려줍니다.
  • QSizePolicy에는 위젯이 다른 속도로 성장할 수있는 확장 요소가 있습니다.

4 가지 크기 정책 만 잘 알고 있습니다.

  • 고정 크기 정책-위젯의 크기가 고정되어 확장 할 수 없습니다. 크기 힌트를 그대로 유지합니다.
  • 최소 크기 정책-크기 힌트는 위젯의 가능한 가장 작은 크기이지만 필요한 경우 여전히 더 커질 수 있습니다.
  • 선호하는 크기 정책-위젯은 크기 힌트보다 축소되거나 커질 수 있습니다.
  • 확장 크기 정책-위젯은 크기 힌트보다 축소되거나 커질 수 있습니다. :)

물어볼 수 있습니다.

선호와 확장의 차이점은 무엇입니까?
답변 : 두 개의 위젯이있는 양식을 상상해보십시오. 하나는 선호되고 다른 하나는 확장되어 있습니다. 그러면 확장 정책이있는 위젯에 추가 공간이 주어집니다. 선호하는 정책이있는 위젯은 크기 힌트를 그대로 유지합니다.

(경고 : 전문가가 아닙니다. :)) " QT 2nd edition을 사용한 C ++ Gui 프로그래밍 " 을 구입하고 읽어 보는 것이 좋습니다 . 나는 현재 그것을 읽고 있고 그 의미가 많이 있습니다. 이미지를보고 의미가 있는지 확인하십시오.

크기 정책 설명
크기 정책 설명

간단한 예
이것은 가로 및 세로 크기 정책이 가로 및 세로 확장으로 표시되는 2 개의 버튼이있는 간단한 대화 상자입니다.

예

다음은 가장 작은 크기의 미리보기입니다. 대체 텍스트

더 큰 크기의 또 다른 미리보기입니다. 대체 텍스트

[편집 됨 : // 크기 힌트 추가 예]

WHY SHOULD YOU CARE ABOUT SIZEHINT
You can see that every widget has a sizeHint which is vital because QT's layout system always respects the sizeHint. This is only a problem if the default size of the widget is not exactly what you want. The only way around this problem is to extend (subclass) the widget and reimplement its sizeHint() member function. An example is worth 1000 words. To save space, see my blog where there is an example project.


You can use QT Style Sheets to control the widgets height and other properties in an easy customizable way.

http://doc.qt.io/archives/qt-4.7/stylesheet.html

As for the layouts you need to use them wisely and strongly coupled with spacers in order to make the widgets behave exactly the way you want them to.

http://doc.qt.io/archives/qt-4.7/designer-layouts.html

참고 URL : https://stackoverflow.com/questions/4553304/understanding-form-layout-mechanisms-in-qt

반응형