모니터링 PC Tool을 제작할 때 UI는 pyqt를 사용했습니다.

정리해보면 UI에 기본적으로 필요한 기능은

1. 통신 접속기능
2. Log message
3. 그래프 (위치, 속도, 가속도, 제어주기, 로봇 렌더링)
4. 데이터 저장 기능
5. 버튼들


Pyqt를 단순 코드로만 제작하기는 어렵기 때문에 "Designer"를 사용했습니다.

designer는 Anaconda 환경에서 designer를 치면 나옵니다.

다음과 같이 원하는 위젯들을 드래그 해서 제작할 수 있고,

 

각 버튼에 대한 함수는 시그널&슬롯 편집창에서 쉽게 지정이 가능합니다.

 

하지만 원하는 행동을 하려면 파이썬 실행 코드에서 함수를 정의해줘야 합니다.

예를 들어 "채팅창 Clear"버튼을 눌렀을 때 Log Message창이 초기화 되길 원한다면
내가 이름지어준 "slot_clearMsg()" 함수를 코드상에서 정의해줘야 하는데,
다음과 같습니다.

@pyqtSlot()
def slot_clearMsg(self):
    self.ui.recvmsg.clear()

self.ui는 파이썬 내에서의 변수이고
recvmsg가 저 버튼의 슬롯이름!!
.clear()는 저 메시지 창의 글씨를 제거해주는 내부 시스템 함수 입니다.

이렇게 UI를 추가&변경 해주는 작업을 거치고
빈 위젯("Graphic View")에 코드를 통해 다양한 그래프 들을 넣어줄 것입니다. 

 

pyqt는 굉장히 간단하고 저것만 가지고 놀아도 재미있었네요ㅎㅎ
따로 공부하지 않고 사용하면서 검색해도 충분히 제작할만 했던 시작이였습니다!!

+ Recent posts