목록전체 글 (25)
DevStudy
박스 레이아웃 박스 레이아웃 클래스를 이용하면 훨씬 유연하고 실용적인 레이아웃을 할 수 있습니다. (QBoxLayout 공식 문서 참고) QHBoxLayout, QVBoxLayout은 여러 위젯을 수평으로 정렬하는 레이아웃 클래스 입니다. QHBoxLayout, QVBoxLayout 생성자는 수평, 수직의 박스를 하나 만드는데, 다른 레이아웃 박스를 넣을 수도 있고 위젯을 배치할 수도 있습니다. 예제 코드에서 위젯의 가운데 아래 부분에 두 개의 버튼을 배치하기 위해 수평, 수직의 박스를 하나씩 사용합니다. 필요한 공간을 만들기 위해 addStretch() 메서드를 사용하고, ‘stretch factor’를 조절해 보겠습니다. 예제 ## Ex 4-2. 박스 레이아웃. import sys from PyQt5..
절대적 배치 절대적 배치 (Absolute positioning) 방식은 각 위젯의 위치와 크기를 픽셀 단위로 설정해서 배치합니다. 절대적 배치 방식을 사용할 때는 다음의 제약을 이해하고 있어야 합니다. 창의 크기를 조절해도 위젯의 크기와 위치는 변하지 않는다. 다양한 플랫폼에서 어플리케이션이 다르게 보일 수 있다. 어플리케이션의 폰트를 바꾸면 레이아웃이 망가질 수 있다. 레이아웃을 바꾸고 싶다면 완전히 새로 고쳐야 하며, 이는 매우 번거롭다. 두 개의 라벨과 두 개의 푸시버튼 위젯을 절대적 배치 방식으로 배치해 보겠습니다. 예제 ## Ex 4-1. 절대적 배치. import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButt..
스타일 꾸미기 어플리케이션 안의 다양한 구성 요소들의 스타일을 자유롭게 꾸밀 수 있습니다. setStyleSheet()을 이용해서 구성 요소의 스타일을 설정하는 방법에 대해 소개합니다. 예제 ## Ex 3-10. 스타일 꾸미기. import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lbl_red = QLabel('Red') lbl_green = QLabel('Green') lbl_blue = QLabel('Blue') lbl_red.setStyleS..