본문 바로가기
PySide or PyQt

빈 공간 없이 애플리케이션의 크기를 알맞게 조정

by 르면가게 2025. 2. 20.

PySide6에서 빈 공간 없이 애플리케이션의 크기를 알맞게 조정하려면 다음 방법을 사용해야 합니다.

해결 방법

  1. adjustSize() → 위젯의 크기를 내부 컨텐츠에 맞게 자동 조정
  2. setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) → 크기 조정을 방지하여 알맞은 사이즈 유지
  3. layout.setSizeConstraint(QLayout.SetFixedSize) → 레이아웃 크기를 컨텐츠 크기에 맞게 자동으로 설정

최적화된 코드

from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QSpacerItem, QSizePolicy
import sys

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        # 레이아웃 생성
        self.layout = QVBoxLayout(self)

        # 버튼 추가
        self.layout.addWidget(QPushButton("Button 1"))
        self.layout.addWidget(QPushButton("Button 2"))

        # 👉 빈 공간 없이 크기 조정
        self.layout.setSizeConstraint(QLayout.SetFixedSize)  # 레이아웃 크기를 내부 컨텐츠에 맞춤
        self.adjustSize()  # 자동 크기 조정

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())

핵심 코드 설명

  1. self.layout.setSizeConstraint(QLayout.SetFixedSize)
    • 레이아웃의 크기를 내부 위젯 크기에 맞게 자동 조정합니다.
    • 이를 설정하지 않으면 레이아웃이 여유 공간을 차지할 수도 있음.
  2. self.adjustSize()
    • 현재 포함된 위젯의 크기에 맞게 전체 윈도우 크기를 자동으로 조정합니다.

최적화된 창 크기 유지

위 코드를 실행하면 불필요한 빈 공간 없이 내부 위젯 크기에 맞게 정확한 크기로 조정됩니다.
이제 창 크기가 알맞게 자동 조정되며, 여백 없이 딱 맞게 표시됩니다! 🚀