본문 바로가기
Programming/PyQt

[Project]학점계산기 : 알고리즘과 Qt designer에 대해서

by owllight 2014. 12. 26.

먼저 대략적인 프로그램의 알고리즘과 실행모습을 구상하여 Qt designer로 제작하였습니다.
저는 알고리즘을 구상할 때 프로그램의 기능을 대분류 한 뒤에 세세하게 구상합니다.

제가 만든 학점계산기는 일반적인 학점계산기와 달리 입력했던 과목과 성적들을 그대로 유지할 수 있게 DB와 연동하였습니다. 그래서 보안도 동시에 요구되어, 아이디와 비밀번호를 입력받는 기능도 필요하게 되었습니다.

처음 프로그램 실행 시 뜨는 창 입니다.
아이디를 학번으로 받고 비밀번호는 사용자가 처음 설정한 숫자 4자리로 받습니다. 처음 시작하는 사용자는 아이디가 존재하지 않으므로 학번과 비밀번호를 Line Text에 입력 한 뒤 시작하기 버튼을 눌러서 데이터를 새로 만들어야합니다. 아이디가 존재하지 않으면 메세지 박스가 뜨도록 구상하였습니다.

아이디가 존재하고 해당 아이디의 비밀번호가 맞다면 메인 프로그램 창이 열립니다. 메인창을 Qt designer로 다음과 같이 구상하였습니다.

사용한 위젯으로는 ComboBox , Label , Table widget , List widget , Radio button , Push Button , Command Link Button , Line Edit , Group Box , Horizontal & Vertical Line 입니다. 각 위젯의 기능은 다음과 같습니다.

 위젯

 기능

위젯 

기능 

 
ComboBox

입력되어진 목록을 선택
- 누르면 목록이 나온다.

 
Push Button

일반적인 버튼

 
 Line Edit

사용자가 입력 하는 곳
- input에 해당한다.


Command Link Button

Push Button과는 다르게 커맨드를 입력하여 보여줌
- 실질적인 차이는 없다.

 Table widget

엑셀과 같은 테이블 생성

Label

창에 글 입력
- 사용자에게 정보전달만


 List widget

존재하는 리스트 선택 가능
- 보여지는 리스트의 선택만 가능하다.

 
Group Box

여러 위젯들을 그룹
- 정리용


Radio button

여러 버튼 중 하나만 선택해야 할 때 사용

 Horizontal & Vertical Line

수평&수직선
- 정리용

프로그램의 기능을 Qt designer에서 구현할 수도 있지만 디자인으로서만 사용하고, 실질적인 기능 구현은 Python을 이용하였습니다. 즉, 시그널과 슬롯을 Python에서 수정하고 매칭시켰습니다. 시그널 생성 방법은 모르기 때문에 Qt에서 주어진 시그널을 사용하였고 실행되는 슬롯을 코딩하였습니다.

다음은 기능 코딩에 대해서 알려드리겠습니다!

댓글