본문 바로가기
Python/PyQt

[Python] PyQt5 두 번째 창 열기(새창 열기)/python GUI(5)

by 고체물리학 2021. 10. 12.

메인 윈도우에서 두 번째 창을 띄우는 코드를 작성한다

 

메인 윈도우 -> 두 번째창 -> 메인 윈도우 -> ....

 

1. PyQt Designer 실행해서 이전에 작성한 ui 불러온다.

2. SecondWindow 버튼을 추가한다(ObjectName: SecondWindow)

 

3. 메인 윈도우에 button_Second함수 추가

    def button_Second(self):
        self.hide() #메인 윈도우 숨김
        self.second = secondwindow()
        self.second.exec() # 두번째창 닫을때까지 기다림
        self.show()  #두번째창 닫으면 다시 첫 번째 창 보여 짐

4. initUI에 버튼 클릭 시에 연결하는 함수 추가

self.SecondWindow.clicked.connect(self.button_Second)

secondwindow.py를 import 해야 한다

 

5. 두 번째 창 UI 추가(secondwindow.ui로 저장)

- 두 번째 창 닫고 메인 윈도우로 가는 Home버튼 추가

 

6. secondwindow.py를 만든다

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic

form_secondwindow = uic.loadUiType("secondwindow.ui")[0] #두 번째창 ui
class secondwindow(QDialog,QWidget,form_secondwindow):
    def __init__(self):
        super(secondwindow,self).__init__()
        self.initUI()
        self.show() # 두번째창 실행

    def initUI(self):
        self.setupUi(self)
        self.home.clicked.connect(self.Home)
        
    def Home(self):
        self.close() #창 닫기

Home 버튼을 누르면 self.close 실행 (현재 창을 닫는다)

 

7. 실행화면

https://youtu.be/JCfmkVbFsxI

 

 

 

반응형

댓글