Back-end/Python - project
[Python] Project Prologue........
디팔⸜( ◜࿁◝ )⸝︎︎
2022. 8. 5. 05:03
프로그래밍 공부를 하면서, 문제 인지능력과 해결능력이 많이 요구되기에
현재 파이썬 언어를 통해 만들고 있는 주소록 프로그램에 대한 기록을 하려한다.
현재 진척도
- 전반적인 로직(Create, Read, Update, Delete) 구현
- MariaDB와의 연동으로 기능 구현
- pyQt6를 통한 GUI 구현 중
앞으로 개선해야할 부분
- 로직 보완(try~except~finally를 통한 예외처리, 논리적 오류 수정, 쿼리 수정)
1-1) 현재 검색은 '이름' 으로만 가능하다. - 쿼리 단순화 - 완성 후 단계
- 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개월 차 햄순이일 뿐이라구.......