[PyQt5]다중화면 값 전송 - MultiWindow
안녕하세요, Dibrary입니다.
앞전 시간에, 다른 화면을 띄우는 것을 해 보았습니다.
2021.08.06 - [프로그래밍/PyQt5] - [PyQt5] 다중 화면을 띄워보자! - ModalWindow
[PyQt5] 다중 화면을 띄워보자! - ModalWindow
안녕하세요, Dibrary입니다. 이번에는 화면을 여러 개 띄우는 것을 해 볼 겁니다. 그동안은 한 개의 화면만 가지고 이벤트 처리를 했었죠. 먼저 여느때와 다름없이 Qt Designer를 켜서 이번에는 '두 개
dibrary.tistory.com
이번에는 간단합니다. 다른 화면을 띄우는데 내가 입력한 값이 다음화면에 전송되는 것입니다.
제일 먼저 Qt Designer를 켜고,
첫 번째 화면에는, 글자를 입력할 수 있는 칸과, 버튼만 놓았습니다.
두 번째 화면에는, 입력한 글자가 나타나게 label을 놓았습니다.
제가 구현하려는 것은, 글자를 입력하고, 버튼을 누르면? 두 번째 화면이 나오면서 입력한 글자가 나타나는 것입니다.
이제 코드를 작성해보겠습니다.
코드는 앞 글의 화면 2개 띄우는 것과 큰 차이는 없습니다.
주의해서 봐야 할 점은, 첫 번째 화면에서 버튼을 눌러서 두 번째 화면을 띄우는데
SW = secondWindow(text)라고 전달인자가 들어가는 것입니다.
이 전달인자는 text = self.lineEdit.text( )를 통해 사용자가 입력한 글자임을 알 수 있습니다.
이 전달인자를 secondWindow에서 받으려면
secondWindow의 생성자 즉, __init__함수에서 전달인자 text가 추가로 생겨야 합니다.
그래서 firstWindow클래스의 __init__ 전달인자는 self만 있고,
secondWindow클래스의 __init__ 전달인자는 self, text 이렇게 2개가 있는 것이죠.
물론 secondWindow에서 받을 때, 꼭 text로 받지 않아도 됩니다.
secondWindow에서는 받은 text를 label에 띄우는 setText 코드가 위치해 있네요.
결과를 보면 이렇게 나옵니다.
입력한 값이 다음 화면에 그대로 나타났죠?
GUI를 구현하면서 생각외로 다음 화면으로 값을 보내야 할 경우가 꽤 많습니다.
따라서, 여러 화면을 띄우는 것과, 값 보내는 것 이 2가지 구현 방법은 잘 알아두시면
다채로운 GUI를 구현하는데 도움이 많이 됩니다.