본문 바로가기

layout4

[PyQt] ui 추출 레이아웃에 ui를 추가하기 위해 사용하는 메소드 addWidget() / addLayout() / addSpacing() / addStretch() / addSpacerItem() 레이아웃에 추가된 ui를 가져오는 메소드 widget() / layout() / spacing() / stretch() / spacerItem() 이들 중 widget() / layout() 메소드는 itemAt(idx) 로 레이아웃으로부터 layoutitem을 먼저 추출한 후 추출된 아이템에서 호출해야한다. (idx는 add된 순서이다.) takeAt(idx) 메소드는 레이아웃에 추가된 ui를 리턴한 후 삭제한다. buttonH = QPushButton("1번 버튼") button2 = QPushButton("2번 버튼") .. 2020. 5. 6.
[PyQt] addLayout() / setLayout() 쓰임 - container QGroupBox() / QWidget() / QScrollArea() / QToolBox() / QTabWidget() / QStackedWidget() / QFrame() / QMdiArea() / QDockWIdget() setLayout() addWidget() - layout QBoxLayout() / QGridLayout() / QFormLayout() addLayout() addWidget() for idx in range(self.layout().count()): item = self.layout().itemAt(idx).widget() item.setCheckState(Qt.Unchecked) while not self.layout().isEmpty(): item =.. 2020. 4. 16.
[PyQt] 화면 디자인 (layout) 화면에 위젯을 위치 시키기 위해서 필요한게 layout 이다. 하지만 아예 move() 같은 메소드를 사용하지 않는한 이게 내가 원하는 곳에 원하는 크기로 위치시키기가 쉽지 않다. 이때 layout 위젯의 메소드들을 활용한다. Horizontal 레이아웃의 경우 addWidget()할 경우 화면에 추가한 위젯이 왼쪽부터 나타나는데 오른쪽부터 나타나게 하려면 setDirection(Qt.RightToLeft) 메소드를 사용한다. Vertical 레이아웃의 경우도 마찬가지이다. 이 방향 지정은 레이아웃에 추가된 위젯에도 영향을 준다. QBoxLayout setLayoutDirection(Qt.LeftToRight) setStretch(index, stretch) setSpacing(spacing) setSt.. 2019. 7. 5.
[PyQt] QMainWindow QtWidgets.QMainWindow 는 자체적으로 layout 을 가지고 있다고 한다.setLayout() 으로 vbox나 hbox layout을 붙여줄 필요가 없다는 뜻이다. 단지 setCentralWidget() 으로 widget을 추가해주면 된다. ### 2019 / 07 / 04 추가 QMainWindow는 위젯을 추가할 때 setCentralWidget() 함수를 사용하여 단 하나만 추가 가능하다. layout이 아니라 위젯을 추가해야한다!!! 여러개의 위젯이 포함된 화면을 만들기위해서 별도의 위젯으로 만들어주어야한다.QWidget을 상속받은 클래스를 만들어 필요한 레이아웃과 위젯들을 추가해주고이 클래스의 인스턴스를 생성해서 setCentralWidget() 함수로 메인 함수에 추가해주면 된.. 2019. 6. 24.