본문 바로가기
Software/Python

[PyQt] PyQt5로 Python GUI 프로그래밍 시작하기 - Hello World! 출력

by lovey25 2019. 1. 30.
반응형

Hello world!, 모든 언어의 시작점이죠 

지난글에서 준비해둔 파이썬 GUI 개발환경에서 Hello World 출력하기를 실습해 보겠습니다.

새 파이썬 프로젝트 생성

VS를 열어서 새로운 프로젝트를 생성합니다.

파이썬 응용프로그램 프로젝트를 선택합니다. 그리고 프로젝트가 저장될 위치와 프로젝트 이름 한번 확인해주고 프로젝트를 생성합니다. 프로젝트가 생성되면 아무것도 없는 빈문서가 나타나는데요, 프로그램 기반이 마련되었습니다.

PyQt로 프로그램 GUI 만들기

이제 PyQt의 디자이너(Designer)프로그램을 열어서 화면에 출력할 창을 디자인 해보겠습니다. 디자이너가 어디 깔려있는지 찾는것도 일인데요. VS에서 PyQt를 설치하면 다음의 경로에 설치가 되는걸 확인 했습니다. 

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Lib\site-packages\pyqt5_tools

이 경로로 찾아가보시면 Designer.exe란 파일을 찾으실 수 있을 겁니다. 저는 앞으로 많이 사용을 해야할테니 바탕화면에 바로가기를 하나 만들어 두었습니다.

자 디자이너를 실행합니다.

프로그램이 시작되면 프로젝트 마법사라고 할까요? 새로 생성할 프로젝트의 종류를 선택할 창이 뜹니다. 저는 일단 버튼이 있는 다이얼로그를 선택해 주었습니다. 그리고 “Create”버튼을 누릅니다.

이제 화면에 출력한 위젯을 추가해 주면 되는데요. 위젯이라는게 버튼이나 텍스트상자 등 창을 구성하는 요소들을 얘기하는겁니다. 사용할 수 있는 위젯의 종류들은 프로그램 좌측에 새로로 나와있는데 그냥 마우스로 긁어서 가져오면 됩니다.  MFC와 똑같은 방법이죠.

프로그램이 실행이되면 버튼을 누르면 텍스트창에 “Hello world”가 나타나도록 하는 프로그램을 만들 계획입니다. 먼저 푸시버튼 하나를 배치합니다. 그리고 “Hello World!” 문자를 출력해야하니 텍스트 에디터를 하나 골라서 드래그해서 배치를 합니다.

이제 창 디자인을 저장하는데, 저장할 때 위치를 앞에서 VS에서 생성했던 프로젝트의 소스와 같은 위치에 저장을 합니다. 저는 파일이름은 그냥 “untitled.ui”로 손대지 않았습니다.

이제 VS로 돌아가서 마무리 코딩을 하겠습니다.

코딩하기

소스파일이 지금은 텅텅 비어있는데 묻지도 따지지도 말고 다음 코드를 복사해서 붙여넣기 합니다.

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
form_class = uic.loadUiType("untitled.ui")[0]

class MyWindow(QDialog, form_class):
   def __init__(self):
       super().__init__()
       self.setupUi(self)
       self.pushButton.clicked.connect(self.btn_clicked)

   def btn_clicked(self):
       self.textEdit.setText("Hello World!")

if __name__ == "__main__":
   app = QApplication(sys.argv)
   myWindow = MyWindow()
   myWindow.show()
   app.exec_()

소스코드의 자세한 설명은 이제 파이썬을 공부하면서 차근차근 알아가도록 할텐데요. 지금은 간단하게 흐름만 보도록 하겠습니다. ㅎ

1~3행: 모듈을 불러오는 부분입니다. C++로 치면 #include정도가 될듯 하네요.

4행: PyQt로 디자인한 ui파일을 지정하는데요. 아까 저장했던 파일이름을 그대로 여기 넣어서 코드를 만들어주면 됩니다.

6행: 클래스가 시작되고,

7행: __init__ 함수가 시작되는데요 이 함수는 C++의 생성자와 같은 함수입니다. 

생성자 함수 내부에 10행을 보면, puchButton이란 위젯을 클릭했을 때 어떤 함수를 호출할껀지 열결해주는 부분이 있습니다. 클래스 내부의 “btn_clicked”라는 함수로 연결되어 있는걸 알수 있죠. 이 함수는 9행에 있습니다.

10행: “textEdit”위젯에 “Hello World!” 텍스트가 나오도록 하는 부분입니다.

버튼을 누르면 “Hello World!”가 나오는 흐름은 이렇게 감만 잡는걸로 ㅎㅎ (MFC보다 훨 간단하긴 하네요.)

결과확인

자 이제 모든 작업이 완료되었습니다. 단축키 F5를 눌러서 실행을 해보면 창이 실행되고 여기서 만들어둔 버튼을 눌러보면 짜잔~

파이썬 실습 첫번째 Hello World!출력하기 마치겠습니다.

 

끝!

반응형

댓글