본문 바로가기
IT, Software/Python

Python 코딩량 줄여주는 PyQt QT Designer 사용팁

by 기타마을이장 2021. 1. 25.

요 몇 년간 너무 스스로에 대한 발전에는 소홀히 하고,

자꾸 기존의 것들이 잊혀져가는 느낌이라 시작했던 나만의 프로젝트.

요즘 대세라는 Python으로 윈도우 어플 만들기의 끝이 어느정도 보인다.

그리고 Python으로 윈도우 어플을 만들기 위한 다양한 방법들 중 선택한 PyQt

어플을 만들려면 UI코드가 워낙에 많으니 자동화해주는 툴도 잘 써야 손이 편하다ㅎㅎ

처음에는 QT Designer를 실행시켜서 어플을 위한 버튼이나 라벨 같은 것들을 드래그해서 만들고

줄 맞춤점도 하고 python 코드로 변환하고 했는데...

사용하다 보니 UI는 계속 조금씩 바뀌고, 그때마다 UI코드를 머지하거나, 코드를 수정해야 하는 일이 많아지게 된다.

하지만 QT Desiagner에서 이런저런 세팅을 미리 해 두면 이런 것들이 한결 수월하다는 점을 발견해서 정리해둔다.

앞으로 또 발견될 때마다 기록해두려고 한다.

 

변수명 미리 선언하기

QT Designer로 각족 오브젝트들을 만들고 그냥 python 코드로 변환하면

각 오브젝트들의 변수명이 너무 컴퓨터스럽게 형성된다.

예를 들어 라벨을 3개 넣으면 변수명이 self.label1, self.label2, self.label3 이렇게 설정된다;;;

그러면 나중에 실제 코딩할 때 알아보기도 힘들고 코드가 커질수록 일이 많다.

그래서 방법은 Designer 안에서 변수명을 미리미리 입력해두면 좋다.

QTextEdit 오브젝트를 만들고 선택하면 우측 객체 탐색기에서 해당 오브젝트에 Focus가 간다.

그 상태에서 왼쪽 이름 부분을 더블클릭하면 이름을 변경할 수 있고,

이때 입력한 이름이 해당 오브젝트의 변수명으로 이후에 python 코드 변환 시 설정된다.

오브젝트 이름을 더블클릭해서 이름 설정 -> "extension"
pyuic5 명령으로 python 코드를 생성한 결과 변수명으로 선언됨.

Default 설정값 미리 세팅해두기

변수명을 미리 세팅해놓는 것 다음으로 코딩량을 줄여주는 팁은 바로 Default 설정값을 미리 세팅해두는 방법이다.

앱을 처음 실행했을 때의 상태 값을 미리 지정해두는 것으로,

중간중간 UI가 변경돼도 머지할 코드가 획기적으로 줄어든다.

아까 생성한 QTextEdit 를 앱시작시에는 기본적으로 Disable 하고 싶은 경우,

우측 속성 편집기에서 enabled를 체크 해제한다.

그럼 해당 오브젝트에 대해 python 코드로 변환될 때 자동으로 setDisabled(TRUE) 가 생성되어 나온다.

속성 편집기에서 enabled 속성을 체크해제
체크가 해제된 상태여서 setDiabled(TRUE) 코드가 자동으로 들어가 있다.

 

우선 지금 만들고 있는 매우 간단한 형태의 어플은 지금까지 정도의 세팅만으로 충분했다.

앞으로 좀 더 복잡한 어플 기능을 만들어야 한다면 더 많은 Designer 세팅을 하게 될 것 같다ㅎㅎ

반응형

댓글