Back-end/Python - project

[Python] Project Prologue........

디팔⸜( ◜࿁◝ )⸝︎︎ 2022. 8. 5. 05:03
프로그래밍 공부를 하면서, 문제 인지능력과 해결능력이 많이 요구되기에
현재 파이썬 언어를 통해 만들고 있는 주소록 프로그램에 대한 기록을 하려한다.

현재 진척도

  1. 전반적인 로직(Create, Read, Update, Delete) 구현
  2. MariaDB와의 연동으로 기능 구현
  3. pyQt6를 통한 GUI 구현 중

앞으로 개선해야할 부분

  1. 로직 보완(try~except~finally를 통한 예외처리, 논리적 오류 수정, 쿼리 수정)
    1-1) 현재 검색은 '이름' 으로만 가능하다.
  2. 쿼리 단순화 - 완성 후 단계
  3. pyQt6를 통한 창전환과 창전환 후에도 기능이 유지되도록 하기 - 완성을 위한 단계

pyQt6를 통한 창전환 구현

  • 현재 parts 각각은 정확하게 동작을 하고 있다.
  • 하지만 하나의 파일에 합치고 창 전환 구현을 프레임에 레이아웃을 올려 프레임을 show(), hide()하는 방식으로 하였는데,
    이 과정에서 show(), hide() 후에 re-rendering 과정을 넣어주지 않아서 변경된 자료가 갱신되지 않는 것 같다.
  • 그리고 입력에서 name만 입력되지 않는다, 번호와 이메일은 db에 전송되지만 name은 아예 자료가 들어가지 않는다
    이를 해결해봐야 겠다.
def initUI(self):
        self.homeFrame = QFrame() # 기능별 프레임 생성
        self.insertFrame = QFrame()
        self.deleteFrame = QFrame()
        self.searchFrame = QFrame()
        self.updateFrame = QFrame()

        homeLayout = self.getHomeLayout() #기능별 레이아웃 생성
        insertLayout = self.getInsertLayout()
        deleteLayout = self.getDeleteLayout()
        searchLayout = self.getSearchLayout()
        updateLayout = self.getUpdateLayout()
    
        self.homeFrame.setLayout(homeLayout) #프레임 위에 레이아웃 장착
        self.insertFrame.setLayout(insertLayout)
        self.deleteFrame.setLayout(deleteLayout)
        self.searchFrame.setLayout(searchLayout)
        self.updateFrame.setLayout(updateLayout)
    
        mainLayout = QVBoxLayout() # 메인 레이아웃 생성
        mainLayout.addWidget(self.homeFrame) # 각 프레임들을 메인에 쌓기
        mainLayout.addWidget(self.insertFrame)
        mainLayout.addWidget(self.deleteFrame)
        mainLayout.addWidget(self.searchFrame)
        mainLayout.addWidget(self.updateFrame)
    
        self.setLayout(mainLayout) # 메인 레이아웃을 setting해서 보여줌
        self.homeFrame.show() # 초기 화면은 홈만 보이게.
        self.insertFrame.hide()
        self.deleteFrame.hide()
        self.searchFrame.hide()
        self.updateFrame.hide()
  • 현재 위 코드와 같이 메인 레이아웃에 각 프레임을 얹고, 그 프레임에 기능을 하는 레이아웃을 올려서 창전환을 구현하고 있다.

첫 번째 생각 : 창 전환시 프레임 위 레이아웃을 지우고, 다시 함수로 구현하여 프레임 위에 올리기

쉽지 않았다.. pyQt6 Documentation을 참고했지만 해결되는 건 없었고

 

Class Index — PyQt Documentation v6.3.1

 

www.riverbankcomputing.com

이런 알 수 없는 오류까지....

도대체 전화번호부를 만들고 GUI 로 연동시키는 것이 이리도 힘들더냐 . . .  . . .

그냥 django로 웹 페이지 구현하고 네이티브 앱을 만들어서 사용하는게 낫지 않을까 생각이 든다.

오늘은 특히 학원에서 react로 탈탈 털리고 와서 더 의욕이 나지 않는다.

내 생각엔.. 코드를 다시 작성해봐야겠다.

M1이라서 pyQt6로 작업하는데 너무 예제가 없어서 어렵다 .... 난 그저.... 3개월 차 햄순이일 뿐이라구.......