금일 목표량

UI 작성, DB 테이블 작성 예정

 

실제 작업량

UI 작성, 파일 설계, 네트워크 소스 일부 구현, ERD 관계 맵핑

 

계획과 달라진 이유

-> 네트워크 부분에서 팀원들 도움이 필요한 부분 많음, 또한 시그널 구조를 어떻게 할지 아직 고민중이라 먼저 시작하였음

 

어제 작성한 ERD는 미완성 상태였다.

관계를 더 작성하였다.

 


오늘 뽑은 UI

 

 
 

 

오늘 뽑은 파일구조

아직은 거의 대부분 빈파일들이다

 


import datetime
import time

from PyQt5 import QtWidgets, QtCore
from PyQt5.QtCore import QPoint, Qt, pyqtSignal

from Client.class_widget_admin import WidgetAdmin
from Client.class_widget_chat_room import WidgetChatRoom
from Client.class_widget_dashboard import WidgetDashBoard
from Client.class_widget_employee_finder import WidgetEmployeeFinder
from Client.class_widget_login import WidgetLogin
from Client.class_widget_medical import WidgetMedical
from Client.client_connector import Connector


class WidgetController(QtWidgets.QWidget):
    def __init__(self, connector=Connector):
        assert isinstance(connector, Connector)
        super().__init__()
        self.connector = connector  # db연결 인스턴스
        self.connector.set_widget(self)

        self.widget_admin = None
        self.widget_chat_room = None
        self.widget_dashboard = None
        self.widget_e_finder = None
        self.widget_login = None
        self.widget_medical = None

        self.setUp()

    def run(self):
        self.show()

    def reset(self):
        pass

    def setUp(self):
        self.set_up_widgets()

    def close(self):
        pass

    def show(self):
        self.widget_admin.show()
        self.widget_chat_room.show()
        self.widget_dashboard.show()
        self.widget_e_finder.show()
        self.widget_login.show()
        self.widget_medical.show()

    def set_up_widgets(self):
        self.widget_admin = WidgetAdmin(self)
        self.widget_chat_room = WidgetChatRoom(self)
        self.widget_dashboard = WidgetDashBoard(self)
        self.widget_e_finder = WidgetEmployeeFinder(self)
        self.widget_login = WidgetLogin(self)
        self.widget_medical = WidgetMedical(self)

    @staticmethod
    def clear_widget(widget):
        if widget.layout() is not None:
            while widget.layout().count() > 0:
                item = widget.layout().takeAt(0)
                if item.widget():
                    item.widget().deleteLater()

 

UI 컨트롤러를 구성하여 인스턴스화한 위젯을 계속 빨아다 쓸 예정이다

(인스턴스를 많이 만들면 느려진다 - 키오스크때 경험)

 

이번 프로젝트도 패키지를 사용하다보니, 상대경로를 통해 이미지를 못불러오는 상황이 있었다.

다행히 qyc 모듈을 통해 인코딩하여 상대적으로 짧은 시간에 이미지들을 입혀서 인스턴스화된 객체로 화면들을 불러올 수 있었다.

 


추가로 관계까지 작성한 ERD

조금만 건들여도, 테이블이 확확 늘어나버린다. 내가 일을 그만두기 전에 차세대 EMR이라고 해서, 전산 시스템을 대대적으로 업그레이드하면서 몇천억을 썼었다고 했는데, 그 많은 요구사항들을 다 반영하려면.. 슈킹이 아니라 충분히 그럴만하다고 느껴진다.

 


 

오늘 들어온 질문들 (기억나는대로)

 

* JSON, Encoder, Decoder 어떻게 쓰는가? -> JSON 이 무엇인지 공부해라, dump 와 dumps의 차이 (s는 복수의 의미가 아니라 string임)

* Qt close() method overide -> controller 로 기능 이전해서 쓰기

* controller 로 어떻게 위젯 화면들을 제어하는가? -> 소스 코드 같이 분석하기

* 어떻게 총체적 합쳐진 클래스를 나눌 수 있는가? -> SOLID 소개 및 원칙을 준수해보기

* Message - Talk Room - User 테이블 간 적절한 칼럼의 관계도는? -> 원하는대로 결과 조회가 가능한지 계속 그려보기

 


 

감사합니다.

 

+ Recent posts