[PySide2(PYQT5)] 04. 레이아웃 이해(Stacked Layout)

Поделиться
HTML-код
  • Опубликовано: 9 фев 2025
  • #PySide2 #PYQT5 #stackedlayout
    코드 참조(복사)는 아래 주소를 참고하세요.
    파이썬클래스 블로그 동시 연재 중: pythonclass.bl...
    파이썬&파이참 설치방법: pythonclass.bl...
    PySide2(PYQT5) 개발환경 구축: pythonclass.bl...
    15초 이상의 광고시청만으로도 파이썬클래스 채널에 큰 도움을 줄 수 있습니다.
    강의에 사용 된 모든 요소는 직접 제작하거나, 저작권에 전혀 문제가 없는 것을 확인하였습니다.
    폰트: 나눔, D2 Coding, 고양덕양
    BGM: youtube 오디오 라이브러리
    SW: 오피스365
    레이아웃 마지막 시간이네요. 이번엔 스택 레이아웃에 대해서 공부해 보도록 하겠습니다. 스택, 말 그대로 레이아웃들이 한공간에 겹쳐 쌓이는 형태로 구성이 되기 때문에, 같은 공간에서 서로 다른 요소를 번갈아 나타내고 싶을 때, 사용하면 좋습니다. 이번 영상에서는 버튼이 3개 포함 된 위젯덩어리를 총 3개 만들어서 번갈아 나타낼 수 있게끔 코딩을 해보겠습니다.
    처음부터 차근차근 강의를 보신분들은 알고 계시겠지만, 우리는 폼 클래스를 구현하면서 항상 Q위젯을 상속받아서, 추가적인 컨트롤이나 위젯, 레이아웃을 구성해왔습니다. 여러가지 레이아웃이나 컨트롤을 Q위젯에 포함시키고, 마지막에는 Q위젯을 show. 즉 보여주면서 프로그램이 시작되죠. 이 부분에서 우리는, Q위젯으로 ‘여러 컨트롤들을 한 덩어리로 묶을 수 있다’ 라는 걸 알 수 있어야 합니다.
    이 걸 짚고 넘어가는 이유는, 스택 레이아웃으로 차곡차곡 쌓게 되는 건, 또 다른 레이아웃이 아닌, 위젯 타입 객체들이기 때문입니다. 따라서 여러 요소들을 Q위젯 단위로 묶어주는 작업이 필요하죠. 이제부터 보시게 될 코드에서, 바로 이 부분을 중점적으로 살펴보시기 바랍니다. 코드 자체가 어려운 편은 아닙니다.
    먼저 3개의 버튼과, 이 버튼을 세로로 배열할 레이아웃, 그리고 이 레이아웃을 묶어줄 Q위젯객체를 생성합니다. 각각의 버튼을 V박스 레이아웃에 추가하고, 해당레이아웃은 Q위젯의 메인 레이아웃으로 지정하면 하나의 위젯덩어리 생성이 끝나는데요, 이 과정을 2번 더 반복을 하면 됩니다. 변수명만 서로 구분이 될 수 있도록 변경 해주면 되겠죠?
    오늘 예제에는 이해가 쉽도록 변수명에 한글이 포함되어 있지만, 되도록이면 한글이 포함되지 않도록 해주시는 게 좋습니다. 그리고 코드를 구성할 때는 같은 종류의 컨트롤끼리 모아두는 것도 좋지만, 지금처럼 서로 관련있는 그룹으로 묶어두는 것이 코드의 가독성을 높일 수 있는 한가지 방법이 될 수 있습니다.
    자, 그럼 이제 Q위젯이 몇 개죠? 버튼 3개와 V박스 레이아웃이 포함 된 Q위젯이 3개, 그리고 아직 비어있는 Q위젯이 있죠? 물론 지금까지 버튼 등을 생성한 코드가 존재하지만, 현재 이 3개의 위젯은 생성만 되었을 뿐 아직 비어있는 Q위젯에 추가를 하진 않았습니다.
    그래서 이제 그 다음과정인데요. 스택 레이아웃을 생성하고, 앞서 생성한 3개의 Q위젯을 추가합니다. 마지막으로 스택 레이아웃을 메인 레이아웃으로 지정하면 끝입니다. 이 상태로 실행을 하면, 스택 레이아웃에 맨 처음 추가한 위젯이 나타납니다. 이제 버튼을 누르면 해당 위젯이 나타나게끔 해야 하는데요.
    일단 함수와 연결하는 부분은 다음시간에 자세하게 다뤄보도록 하구요. 이 연결과정을 통해서 아래에 있는 함수가 실행된다는 것만 살펴보도록 하겠습니다. 스택 레이아웃은 셋커런트인덱스 함수로 특정 위젯을 나타낼 수 있습니다. 인덱스는 역시 0부터 시작을 하겠죠?
    결과적으로 A, 1, 가 버튼을 누르면 첫번째 위젯이 보이고, B, 2, 나 버튼을 누르면 두번째 위젯이 보이고, 마지막으로 C, 3, 다 버튼을 누르면 마지막 위젯이 보이게 됩니다. 이로써 레이아웃이 마무리가 되었는데요, 그리드, 폼, 박스, 오늘 배운 스택까지 총 4개의 레이아웃을 활용하면, 거의 모든 구성이 가능해집니다. 다음 시간엔 시그널과 슬롯에 대해서 공부해보도록 하겠습니다. 지금까지 리턴제로였습니다. 감사합니다.

Комментарии • 3

  • @gamesmixmix3892
    @gamesmixmix3892 5 лет назад

    좋은 강좌 감사드립니다. pyqt5 공부 중인 학생인데 선생님 영상이 많은 도움이 됐어요. 해당 동영상이랑 관련은 없지만 궁금점이 있는데, 윈도우 비활성화 상태에서 단축키 이용해서 활성화 하는게 가능한가요?

  • @SuperSmartonline
    @SuperSmartonline 2 года назад

    아 좋은데여기가 마지막 qt인가요

  • @최실장-t2e
    @최실장-t2e 2 года назад

    gui 디자이너를 사용안하고, 머리속에서 화면을 그리는건 직관적이지도 않고 힘든데... 굳이 이렇게 하는이유를 모르겠습니다.