728x90
728x90
PyQt6에서 GUI Window의 크기를 조절할 경우, 자식 widget들의 크기도 windows 크기에 맞춰 변해야함.
이를 기본적으로 PyQt6에서는 QSizePolicy를 통해 설정할 수 있음.
사용가능한 QSizePolicy.Policy
QtWidgets.QSizePolicy.Policy.FixedsizeHint()의 return value인QtCore.QSizeinstance로 크기 고정.- value :
0
QtWidgets.QSizePolicy.Policy.MinimumsizeHint()의 return value인QtCore.QSizeinstance가 최소 크기임.- 더 작아질 수 없음.
- value :
GrowFlag
QtWidgets.QSizePolicy.Policy.MaximumsizeHint()의 return value인QtCore.QSizeinstance가 최대 크기임.- 더 커질 수 없음.
- value :
ShrinkFlag
QtWidgets.QSizePolicy.Policy.PreferredsizeHint()의 return value인QtCore.QSizeinstance가 최적 크기이나 크기를 변경할 수 있음.minimumsizeHint()의 return value인QtCore.QSizeinstance가 최소크기를 지정함.- value :
GrowFlag|ShrinkFlag
QtWidgets.QSizePolicy.Policy.ExpandingsizeHint()의 return value인QtCore.QSizeinstance가 최적 크기이나 더 작아질 수 있음.- 더 큰 사이즈로 확장될 경우, 해당 공간을 다 사용함.
- value :
GrowFlag|ShrinkFlag|ExpandFlag
QtWidgets.QSizePolicy.Policy.MinimumExpandingsizeHint()의 return value인QtCore.QSizeinstance가 최소 크기이며 최적 크기.- 더 큰 사이즈로 확장될 경우, 해당 공간을 다 사용함.
- value :
GrowFlag|ExpandFlag
QtWidgets.QSizePolicy.Policy.IgnoredsizeHint()를 무시.- value :
ShrinkFlag|GrowFlag|IgnoreFlag
Widget에서 현재 policy 확인
QPushButton widget을 예로 든 다음 코드를 참고.
push_btn = QPushButton("test")
print("sizeHint :", push_btn.sizeHint())
print("verticalPolicy :", push_btn.sizePolicy().verticalPolicy())
print("horizontalPolicy :", push_btn.sizePolicy().horizontalPolicy())Widget에서 QSizePolicy를 지정
다음 코드는 dsBar라는 widget에서 QSizePolicy를 지정하는 예를 보여줌.
import sys
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtCore import Qt
class dsBar(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.setSizePolicy(
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding
)
def sizeHing(self):
return QtCore.QSize(40,120)728x90
'Programming' 카테고리의 다른 글
| [matplotlib] bar chart 그리기 : error bar 포함 (0) | 2023.08.01 |
|---|---|
| [Python] for statement (0) | 2023.07.30 |
| [Python] Regular Expression : re 요약 (0) | 2023.07.03 |
| [Python] str: Overloaded Operators (0) | 2023.07.02 |
| [Python] pip 란 (Package Management System) (0) | 2023.06.22 |