Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

DevStudy

PyQt5 본문

기타

PyQt5

DevStudy 2022. 1. 15. 21:39

절대적 배치

절대적 배치 (Absolute positioning) 방식은 각 위젯의 위치와 크기를 픽셀 단위로 설정해서 배치합니다.

절대적 배치 방식을 사용할 때는 다음의 제약을 이해하고 있어야 합니다.

  • 창의 크기를 조절해도 위젯의 크기와 위치는 변하지 않는다.
  • 다양한 플랫폼에서 어플리케이션이 다르게 보일 수 있다.
  • 어플리케이션의 폰트를 바꾸면 레이아웃이 망가질 수 있다.
  • 레이아웃을 바꾸고 싶다면 완전히 새로 고쳐야 하며, 이는 매우 번거롭다.
 

두 개의 라벨과 두 개의 푸시버튼 위젯을 절대적 배치 방식으로 배치해 보겠습니다.

 

예제

## Ex 4-1. 절대적 배치.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton


class MyApp(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        label1 = QLabel('Label1', self)
        label1.move(20, 20)
        label2 = QLabel('Label2', self)
        label2.move(20, 60)

        btn1 = QPushButton('Button1', self)
        btn1.move(80, 13)
        btn2 = QPushButton('Button2', self)
        btn2.move(80, 53)

        self.setWindowTitle('Absolute Positioning')
        self.setGeometry(300, 300, 400, 200)
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

위젯의 위치를 설정하기 위해 move() 메서드를 사용합니다.

라벨 (label1, label2)과 푸시버튼 (btn1, btn2)의 x, y 좌표를 설정함으로써 위치를 조절합니다.

좌표계는 왼쪽 상단 모서리에서 시작합니다. x 좌표는 왼쪽에서 오른쪽으로 갈수록 커지고, y 좌표는 위에서 아래로 갈수록 커집니다.

 
 

설명

label1 = QLabel('Label1', self)
label1.move(20, 20)

라벨을 하나 만들고, x=20, y=20에 위치하도록 옮겨줍니다.

 
 
btn1 = QPushButton('Button1', self)
btn1.move(80, 13)

푸시버튼을 하나 만들고, x=80, y=13에 위치하도록 옮겨줍니다.

 
 

결과

 

 

'기타' 카테고리의 다른 글

PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15