프로그래밍/PyQt5

[PyQt5]다중화면 값 전송 - MultiWindow

Dibrary 2021. 8. 9. 10:00
반응형

안녕하세요, 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를 구현하는데 도움이 많이 됩니다.

728x90
반응형