PyQt5 setAlignment

김유상·2022년 11월 21일
0

ICT인턴십

목록 보기
13/21

Function setAlignment about some Object means alignment of inner Object about that Object.

어떤 Object에 대한 setAlignment는 해당 객체 내부의 Object에 대한 배열을 의미한다. 따라서 객체들의 배열을 바꾸기 위해 현재 객체들을 조정하는 바보 같은 짓은 하지 말자...

layout.addWidget(text_label, 0, 0, 1, 1, QtCore.Qt.AlignCenter)
layout.addWidget(equal_label, 0, 1, 1, 1, QtCore.Qt.AlignCenter)
layout.addWidget(formular_label, 0, 2, 1, 1, QtCore.Qt.AlignCenter)
layout.addWidget(equal_label2, 0, 3, 1, 1, QtCore.Qt.AlignCenter)
layout.addWidget(value_label, 0, 4, 1, 1, QtCore.Qt.AlignCenter)

위 코드처럼 각각의 위젯에 Alignment를 지정해줘도 layout 내에서 label들의 전체적인 위치는 조정되지 않는다. 단지 label이 차지하는 면적 내에서 text들이 오른쪽으로 붙는지 왼쪽으로 붙는 지를 결정할 뿐이다.

따라서 모든 label들을 조정하고 싶으면 이렇게 바꿔주면 된다.

layout.addWidget(text_label, 0, 0, 1, 1)
layout.addWidget(equal_label, 0, 1, 1, 1)
layout.addWidget(formular_label, 0, 2, 1, 1)
layout.addWidget(equal_label2, 0, 3, 1, 1)
layout.addWidget(value_label, 0, 4, 1, 1)
layout.setAlignment(QtCore.Qt.AlignCenter)

layout에 alignment를 걸어주면 label이 공간을 모아줄 수 있다. 여러 위젯들을 한쪽으로 몰고 싶다면 항상 큰 개념에서 접근해야 한다는 것을 잊지 말자.

profile
continuous programming

0개의 댓글