it 봉사 - 화도사랑교회 재정 프로그램 개발3

in #kr7 years ago

지난번까지해서 비록 콘솔(cmd)창에서 실행되지만 써먹을 수 있는 프로그램을 개발했습니다

하지만 사용자 입장에서 정말 불편한 것은 사실입니다

그래서 파이썬 pyqt5를 이용해서 진행해보려 합니다

짧은 시간동안 열심히 공부도 했고 이것저것 테스트 해보면서 개발을 진행했습니다

또한, 화도사랑교회 지인분이랑 대화도 꾸준히 하면서 진행했습니다

"~부분이 있으면 좋겠다"

라고 하면 그 부분은 개발해줬습니다

그리고 안타까운 소식을 들은게

다른 여타 교회들도 이런 프로그램을 매번 비싼돈을 주면서 계속 프로그램을 연장한다고 하더군요

좀 안타까웠습니다

화도사랑교회 뿐 아니라 여타 다른 교회들도 만들어주고 싶은 마음이네요

개인적으로 취업이나 금전적인 문제도 있긴하지만요

뭐 아무튼 파이썬의 pyqt5를 이용해서 사용자가 시각적, UI적으로 쉽게 보이게 진행했습니다

1.JPG

먼저 기본적인 레이아웃을 잡았습니다

QMainWindow를 상속하는 클래스를 만들었구요

위치, 사이즈, 고정 사이즈 등을 잡았습니다.

프로그램은 화도사랑교회에 맞추었다보니 title을 화도사랑교회 재정 관리로 잡았습니다~

2.JPG

그리고 총 7개의 탭을 잡았습니다~

각각에 메뉴에 대해 탭이 다 다릅니다

입금관리, 출금관리 등등으로요!

3.JPG

또한 각 탭 별 기능은 전부 함수화 했습니다

그래야 관리도 쉽고 보기도 쉽기 때문이죠

이왕 하는거 부품별로 분리해놓으면 좋잖아요 ㅎㅎ

4.JPG

이 함수는 첫번째 탭에 대한 함수의 일부분입니다

각 함수별로 필요한 기능이 들어가있습니다

이 부분은 입금에 대한 탭이기에 입금에 대해서 있습니다

5.JPG

이 부분은 3번째 탭에 대해 설명합니다

날짜에 대한 검색이라서 날짜를 입력받습니다

6.JPG

그리고 각 탭에 있는 버튼에 대한 기능들도 다 함수화 되어 있습니다

클릭했을 때 값을 가지고 오는 방식입니다

그래서 이 값으로 DB와 연동해 작업을 처리하죠

근데 개발하면서 여러가지 문제점이 발생되더군요(역시.. 쉽게 되지 않습니다)

사실 이거 pyqt5 진행 자체가 계속 문제점이 있었는데요

그 중에서 특히 문제점이 되었던 것이 있습니다

8-2.JPG

먼저 이 문제였습니다

만약 사용자가 출금에 대한 대분류를 입력하고 누르면

addwidget이기 때문에 위젯이 더해지게 됩니다

그리고 사용자는 소분류 선택 및 금액을 작성하고 입력 버튼을 누르면 데이터베이스에 저장됩니다

그런데 여기서 사용자가 처음부터 한번 진행하게 되면 화면이 refresh 되지 않고 밑에 추가가 되는 것입니다!

우어으아아아ㅓ어 처음엔 완전 멘붕이었죠

아 그래서 어떤 꽤를 쓰면 될까 했습니다

구글링을 하다보니 아래와 같이 하면 되더군요

8-3.JPG

이 방법을 사용하면 현재 레이아웃의 위젯들을 전부 없애버려줍니다!

그리고 어차피 그려주는거야 함수화 시켰으니까 그려주는 함수를 호출하면 끝!

간단하지만... 나름 오래걸렸어요 ㅠ

그리고 또 하나의 문제점이 있더라고요

9-1.JPG

바로 데이터베이스에 저장되어 있는 개수가 많으면

출력 시 화면이 초과되서 깨진다는 겁니다 ㅠㅠ

스크롤바도 없고 마우스 드래그도 안되고 난처하더라고요

그래서 혹시 스크롤바 레이아웃이 있지 않을까?

해서 scrollarea를 찾았습니다

9-2.JPG

ㅎㅎ 모습을 갖추어 갑니다
기분이 좋네요!

10.JPG

취소도 가능하고요!

11.JPG

데이터베이스 목록도 잘 나옵니다!

이제 기능을 추가할 것이 있는지 또한 프로그램이 잘 동작 되는지 화도사랑교회 지인분들과 테스트 및 소통을 계속 할겁니다

추후에 추가 업데이트 및 수정사항 반영을 하려고 합니다 ㅎㅎ

Sort:  

워낙 전문적이라 제가 알아보기가 힘드네요.ㅠ

에구 ㅠ 다음부턴 쉽게 써보겠습니다!

머가 먼지 모르겠네요 ㅠㅠ 그런데 명성이 20도 있네요 ?

다음부턴 쉽게 써볼게요 ㅠ 명성..이요.?? 그런건 잘 몰라서 ㅎㅎㅎㅎ 스팀잇을 자주 하진 않아서용

네~ㅎㅎ 명성20은 처음보는 ㅎ 열심히 포스팅하셔야 명성도 오르죠~~

넵 ㅎㅎ 그래야겠네요~ 감사합니다!