본문 바로가기
Programming/PyQt

Python과 Qt designer 사용하기 : pyuic4 변환방법

by owllight 2014. 7. 16.

일반적으로 Python에서 제공하는 GUI 라이브러리로 Tkinter가 있습니다.
Python을 실행시켜 tkinter을 임포트시켜 이벤트 루프나 제공하는 메소드를 이용하여 GUI를 제작하는 형식입니다.
하지만 이 방법은 하나하나 코드를 쳐서 제작하기 때문에 개발자는 코드를 완성시켜 실행시켜보고 다시 수정하는 방식으로 다소 귀찮습니다..

Qt designer를 이용하면 개발자가 원하는 모양으로 프로그램 틀을 만들고 Python과 연동하여 기능을 추가하기 때문에
디자인 쪽의 코드 제작에 대한 불편함과 시간을 상당히 줄일 수 있습니다.

먼저 Qt designer를 실행시키면 다음과 같이 "새 폼"창이 뜹니다.

새 폼창에는 크게 Dialog와 Main Window, Widget 3가지 형태를 선택할 수 있습니다.
Main Window는 Dialog나 Widget과는 달리 도구 모음이나 메뉴바를 설정 할 수 있습니다. 
Dialog나 Widget은 일반적인 프로그램을 만들 때 사용하며 둘의 차이점은 Dialog가 Top Level로 실행된다는 것입니다. 

주어진 템플릿 중 Dialog with Buttons Bottom을 선택하면 확인과 취소버튼이 있는 기본 다이얼로그가 생성됩니다.

위의 모습은 시그널/슬롯 편집 상태일 때 입니다. 프로그램에서 사용자가 작동시켜서 발생하는 신호를 시그널(signal), 신호에 따라 일어나는 이벤트를 슬롯(slot)이라고 합니다. 시그널은 사용하는 위젯에 따라 다르지만 주로 클릭이나 드래그, 체크(check)등 이 있습니다.  하나의 시그널에 여러 슬롯을 설정할 수 있습니다!
예를들어 취소 버튼을 누르면 클릭라는 시그널이 발생하게 됩니다. 그에따른 슬롯을 종료하게끔 설정하면
사용자가 취소버튼을 누르면 프로그램이 종료되게 되는 것입니다.

Qt designer에서 자신이 만든 프로그램을 미리 실행해보고 싶으시다면 ctrl + R을 누르시면 됩니다:D
※시그널/슬롯 편집 단축키F4이며, 위젯 편집 단축키는 F3 입니다.

시그널과 슬롯을 설정하는 방법은 시그널/슬롯 편집 상태에서 해당 위젯(여기선 푸쉬[push]버튼)을 누른 상태로 드래그를 하면 붉게 표시되면서 붉은 선이 나타납니다. 이 붉은 선은 같이 연동될 무언가와 연결시키는 역할을 합니다.
즉, 해당 위젯과 다른 위젯을 연결하여 작동시키고 싶을 땐 이 붉은선으로 서로를 연결시키면 되는 것입니다.
굳이 연결시키지 않아도 슬롯을 불러올 수 있는데, 그럴 땐 빈 화면에 선을 두면 접지모양이 나타나게 됩니다.(아래사진)

현재 새 폼 창에서 선택한 기본 템플릿은 버튼박스(buttonBox)로 확인버튼과 취소버튼이 묶여있습니다.
버튼 박스의 기능은 추후에 알려드리겠습니다.

드래그를 놓으면 해당 위젯에서 발생할 수 있는 시그널과 그 때 사용할 수 있는 슬롯 목록이 나옵니다.

시그널과 슬롯을 다음 사진과 같이 accepted()-accept(), rejected()-reject()로 설정합니다.

폼을 어느정도 만든다음 저장하면 확장자가 .ui로 되어 있을것입니다. 이 확장자명을 가진 파일은 Qt designer에서 지원하는 확장자로 Python에서는 지원을 하지 않습니다. 여기서 PyQt를 이용하여 .ui를 .py로 변환하는 것입니다! 
변환은 PyQt4에서 제공하는 pyuic4를 이용하여 변환시켜주는데 

먼저 실행창(window키+R)을 켜서 cmd를 실행시킵니다.
코멘드 창에 다음 사진처럼 pyuic4 -x the_ui_file_name.ui -o the_python_file_name.py를 입력해줍니다.
이 때, the_ui_file_name.ui에는 실제파일이 있는 주소와 함께 입력해야되며 the_python_file_name.py는 변환된 파일이
존재할 곳을 파일명과 같이 입력해주셔야 합니다. 변환된 파일명은 아무렇게 써도 상관없습니다.

저는 ex1이라는 ui파일이 바탕화면에 존재해서 주소가 위와 같으며 변환 파일도 바탕화면에 생성되도록 하였습니다.

다 입력하고 엔터 치시면 설정한 위치에 변환된 Python파일이 존재할 것입니다.
그 파일을 Python으로 열게 되시면 다음과 같은 코드가 작성되어 있습니다.

이 상태에서 자신이 원하는 프로그램이 되도록 코드를 수정하시면 되는 것입니다!

기본적인 PyQt4의 사용법을 익혔으므로 다음엔 Qt designer의 기능들에 대해서 알아보도록 하겠습니다!
수고하셨습니다:)


 

댓글