조회 수 159 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄



드디어 화면이 바뀌는 레이아웃이 나옴.

그걸 가능하게 하는 것이 QStackedLayout() 함수임.

 

Stacked Layout = 한 프로그램의 레이아웃에 위젯을 Stacked (쌓아둠)하고 이벤트로 인덱스 순위를 변경하여 최상위로 노출시키는 구조

 

아래는 위젯 3개가 Stacked 되어 있는 예제임.

 

 

import sys
from PySide2.QtWidgets import *


class Form(QWidget):
    def __init__(self):
        super(Form, self).__init__()


        # 첫번째 widget 생성
        self.wgtA = QWidget()
        self.wgtA_vl = QVBoxLayout()
        self.btnA = QPushButton("A")
        self.btnB = QPushButton("B")
        self.btnC = QPushButton("C")
        self.wgtA_vl.addWidget(self.btnA)
        self.wgtA_vl.addWidget(self.btnB)
        self.wgtA_vl.addWidget(self.btnC)
        self.wgtA.setLayout(self.wgtA_vl)

        # 두번째 widget 생성
        self.wgt1 = QWidget()
        self.wgt1_vl = QVBoxLayout()
        self.btn1 = QPushButton("1")
        self.btn2 = QPushButton("2")
        self.btn3 = QPushButton("3")
        self.wgt1_vl.addWidget(self.btn1)
        self.wgt1_vl.addWidget(self.btn2)
        self.wgt1_vl.addWidget(self.btn3)
        self.wgt1.setLayout(self.wgt1_vl)

        # 세번째 widget 생성
        self.wgt가 = QWidget()
        self.wgt가_vl = QVBoxLayout()
        self.btn가 = QPushButton("가")
        self.btn나 = QPushButton("나")
        self.btn다 = QPushButton("다")
        self.wgt가_vl.addWidget(self.btn가)
        self.wgt가_vl.addWidget(self.btn나)
        self.wgt가_vl.addWidget(self.btn다)
        self.wgt가.setLayout(self.wgt가_vl)
       
        # 생성된 위젯을 한꺼번에 쌓아서 보여줄 StackedLayout을 생성하고 위젯으로 추가함
        self.layout = QStackedLayout()
        self.layout.addWidget(self.wgtA)
        self.layout.addWidget(self.wgt1)
        self.layout.addWidget(self.wgt가)

        # Stacked된 layout을 현재 창의 메인 layout으로 설정함.
        self.setLayout(self.layout)


        # 버튼에 이벤트 연결함. lambda 사용, 매개변수 s, i 사용, self. 사용
        self.btnA.clicked.connect(lambda s=None, i=0: self.set_stack_index(s, i))
        self.btnB.clicked.connect(lambda s=None, i=1: self.set_stack_index(s, i))
        self.btnC.clicked.connect(lambda s=None, i=2: self.set_stack_index(s, i))

        self.btn1.clicked.connect(lambda s=None, i=0: self.set_stack_index(s, i))
        self.btn2.clicked.connect(lambda s=None, i=1: self.set_stack_index(s, i))
        self.btn3.clicked.connect(lambda s=None, i=2: self.set_stack_index(s, i))

        self.btn가.clicked.connect(lambda s=None, i=0: self.set_stack_index(s, i))
        self.btn나.clicked.connect(lambda s=None, i=1: self.set_stack_index(s, i))
        self.btn다.clicked.connect(lambda s=None, i=2: self.set_stack_index(s, i))

    def set_stack_index(self, s, i):
        # setCurrentIndex() 메소드로 위젯 변환
        self.layout.setCurrentIndex(i)


app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()

 

 

 

 

 

 

 




List of Articles
번호 분류 제목 날짜 조회 수 글쓴이
공지 공지 기멀전이 고전 명설교가 담긴 카세트 테잎을 발굴합니다. file 2021.06.17 665 운영자
공지 공지 찬송가 가사 및 제목 변경을 개인적으로 사용하는 분들 사용제재합니다. 3 file 2021.04.30 1179 운영자
공지 공지 Livepro L1 V1 국내 정품 공동구매 안내 - 종료 23 file 2021.04.06 4327 운영자
공지 공지 기멀전 개인 상담 채널 오픈합니다. 2021.02.27 885 운영자
» 정보&강의 QStacked Layout 으로 화면이 바뀌는 프로그램 구조 2020.06.06 159 운영자
14533 정보&강의 FormLayout 레이아웃 사용 pyside2의 formLayout() 사용하기 import sys from PySide2.QtWidgets import * from PySide2.QtCore import Qt #레이블의 정렬을 위해서는 Qt를 import함. 기본 ... file 2020.06.06 796 운영자
14532 정보&강의 BoxLayout으로 Layout  잡는 방법 BoxLayout으로 Layout 잡을 때 import sys from PySide2.QtWidgets import QApplication, QWidget,\ QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QLabel ... file 2020.06.05 169 운영자
14531 정보&강의 pyside2 기본폼 소스 2020.06.05 146 운영자
14530 정보&강의 파이썬 GUI 어떤 것으로 시작하면 좋을까. 2020.06.05 1705 운영자
14529 공지 구글 드라이브 종료 안내 2020.06.05 458 운영자
14528 정보&강의 모든 링크 프라이스 수익을 자기 계정으로 적립하는 스크립트 및 php 소스 뽐뿌 및 클리앙등 인터넷상의 모든 링크프라이스 링크를 자신의 링크프라이스 AID 코드로 우회합니다. 링크를 통해 자신이 구입하는 커미션 수익을 본인의 링크프... file 2020.06.04 463 운영자
14527 정보&강의 뽐뿌 링크프라이스를 무력화 하기 각 브라우저별 확장프로그램은 공홈에서 받으세요. https://www.tampermonkey.net/ 뽐뿌 링크프라이스 무력화 소스입니다. // ==UserScript== // @name ppomppu L... file 2020.06.04 348 운영자
14526 질문 새찬송가wide hd PPT 결재했는데 결재대기로 나옵니다 secret 2020.06.03 0 mana1251
14525 가입인사 안녕하세요? 처음 뵙겠습니다. 2020.05.29 199 아짠송
14524 정보&강의 월세 내시는 개척교회 목사님들은 주거급여 신청하시기 바랍니다. 주거급여란? 주거급여를 간단하게 설명하자면, 이 제도는 기초생활보장제도로 저소득층의 주거비를 지원하는 제도를 말합니다. 현재는 국토교통부에서 주관하고 ... file 2020.05.24 454 운영자
14523 가입인사 가입인증메일 재전송 2020.05.24 173 너굴아바
14522 가입인사 가입 합니다. 2020.05.21 177 탱크한
14521 정보&강의 mindmanager 2020 버전에서 웹 퍼브리싱 기능이 추가되었습니다. 오랜만에 마인드맵 쓸일이 있었는데 2020버전에서 확인해보니, 웹 퍼브리싱 기능이 추가되었네요. 계정생성 비용은 무료이고 발급도 무료입니다. 작성은 프로그램... file 2020.05.18 141 운영자
14520 정보&강의 윈도우10에서 GTA5 실행후 한글 전환이 안될 때 GTA5가 무료로 풀려서 한번 해보고 있는데, 이게 웬지 게임이후에는 한글 전환이 되지 않는 버그가 있습니다. 인터넷에 있는 방식들은 윈도우10 버전이 낮은 경우... file 2020.05.17 1128 운영자
14519 가입인사 가입 인사드립니다~^^ 2020.05.11 188 항해자~
14518 가입인사 가입했어요~~ 2020.05.09 168 박영
14517 가입인사 반갑습니다 2020.05.05 189 glory9
14516 정보&강의 UniqueBible 용 mybible 성경 모듈 설치하기 유니크 바이블을 처음 설치하면 한글 성경이 존재하지 않습니다. 이에 한글 성경을 찾아서 설치하는 방법을 알려드립니다. mybible 용 성경 모듈 사이트입니다. h... file 2020.05.03 277 운영자
14515 정보&강의 UniqueBible 윈도우10에서 설치와 실행하기 1. 파이썬 설치 https://www.python.org/downloads/ 접속 후 파이썬3을 다운받고 설치합니다. 가장 중요한 것은 Path 를 추가하는 것입니다. 그래야 아무 폴더에... 2 file 2020.05.01 405 운영자
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 738 Next
/ 738