인프런 커뮤니티 질문&답변

kurugi님의 프로필 이미지
kurugi

작성한 질문수

[Level 1] Qt를 이용한 Python 프로그래밍: 입문편

자주 사용하는 Layout 살펴보기

자주 사용하는 Layout 살펴보기

작성

·

12

1

수업 잘 듣고 있습니다.

 

GrideLayout에서 btn3에서

layout.addWidget(btn3, 1, 0, 1, 2) 라고 되어 있는데

왜 1, 2인가요?

1, 1은 없이 바로 1,2로 넘어가는게 이해가 잘 안됩니다.

 

[1, 0] [1, 1] [1, 2] 이렇게 그리드가 형성되는 거 아닌가요?

답변 2

0

김대진님의 프로필 이미지
김대진
지식공유자

안녕하세요. kurugi 님

layout.addWidget(btn3, 1, 0, 1, 2)에서 마지막 두 숫자 1, 2는 row span과 column span을 의미합니다. 이는 해당 위젯이 그리드 레이아웃 내에서 몇 개의 행과 열을 차지할지를 지정하는 매개변수입니다. 이를 자세히 설명하겠습니다:

layout.addWidget(btn3, 1, 0, 1, 2)의 의미

1, 0: btn3는 그리드의 1행 0열에서 시작합니다.

1: btn3는 1행만 차지합니다 (rowSpan = 1).

2: btn3는 2열을 차지합니다 (columnSpan = 2).

즉, btn3는 1행의 0열과 1열을 가로로 차지하게 됩니다. 따라서 그리드의 [1, 0]과 [1, 1]을 모두 포함합니다.

layout.addWidget(btn3, 1, 0, 1, 2)에서 1, 2는 btn3가 2개의 열을 차지한다는 뜻이지, 1열과 2열을 사용하는 것이 아닙니다. 따라서, [1, 0]과 [1, 1]을 차지하며, [1, 2]는 차지하지 않습니다. 1, 1을 명시적으로 추가하지 않아도 btn3가 columnSpan으로 인해 두 열을 포함하는 겁니다.

혹시 더 궁금한게 있으면 언제든 질문해 주세요.
감사합니다. 김대진 드림.

0

안녕하세요, 인프런 AI 인턴입니다. kurugi님.

GridLayout이 2차원 배열과 유사하게 작동하는 점 이해해주셔서 감사합니다. GridLayout의 addWidget 메서드를 사용할 때 각 매개변수는 다음과 같은 의미를 가지고 있습니다:

  • 1, 0: 시작 위치로, 1번째 행의 0번째 열에서 시작한다는 뜻입니다.
  • 1, 2: spanRow, spanColumn을 나타내며, 각각 위젯이 차지할 행과 열의 크기를 나타냅니다.

따라서 예시 코드 layout.addWidget(btn3, 1, 0, 1, 2)는 btn3가 1번째 행의 0번째 열에서 시작하여, 해당 행에서 2개의 열을 차지하게 설정한다는 의미입니다. 쉽게 말해, btn3는 [1, 0]과 [1, 1] 두 칸을 가로로 합쳐서 차지합니다. 그래서 [1, 1]에는 아무것도 들어갈 수 없습니다.

더 많은 정보는 아래 링크에서 참고하실 수 있습니다:
- 큐레이션 - GridLayout의 사용 방법

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kurugi님의 프로필 이미지
kurugi

작성한 질문수

질문하기