[GPA Check] 출력 함수 수정

Updated:

출력 함수 수정

[GPA Check] 출력 함수 정의 및 정리 에서 출력 기능 까지 구현을 했다.

그런데 뭔가 다닥다닥 붙어 있는게 마음에 안들어 조금 수정했다.

기존에는 교과목명, 이수구분, 학점과 처음에 개행문자를 합친 문자열을 출력 하도록 했다.

그런데 그렇게 하고 보니 맨 첫줄은 구분선과 떨어져 있고, 맨 마지막줄은 구분선과 붙어있어 굉장히 보기 싫었다 !!

방법이 없을까 생각을 하던 도중..

enumerate 를 사용해 첫 번째 줄만 개행문자를 넣어주지 않고 문자열을 만들었다.

    def print_info(self, check):
        widget = QPlainTextEdit(self)
        widget.setReadOnly(True)
        query = 'SELECT * FROM ' + check
        my_cur.execute(query)
        my_result = my_cur.fetchall()
        widget.appendPlainText(check.replace('_', '-') + ' 성적 조회\n')
        widget.appendPlainText('교과목명\t\t\t\t\t이수구분\t\t\t\t학점\t\t등급')
        widget.appendPlainText('-------------------------------------------------------------------------------'
                               '----------------------------------------------------------------------------')
        application_credit = 0  # 신청학점
        acquisition_credit = 0  # 취득학점
        for idx, cur in enumerate(my_result):
            class_name = str(cur[0])
            classification = str(cur[1])
            credit = str(cur[2])
            application_credit += int(credit)
            if idx == 0:
                if len(class_name) <= 8:
                    output = class_name + '\t\t\t\t\t' + classification + '\t\t\t\t' + credit
                else:
                    output = class_name + '\t\t\t\t' + classification + '\t\t\t\t' + credit
            else:
                if len(class_name) <= 8:
                    output = '\n' + class_name + '\t\t\t\t\t' + classification + '\t\t\t\t' + credit
                else:
                    output = '\n' + class_name + '\t\t\t\t' + classification + '\t\t\t\t' + credit
            widget.appendPlainText(output)

        widget.appendPlainText('-------------------------------------------------------------------------------'
                               '----------------------------------------------------------------------------\n')
        widget.appendPlainText('신청학점 : ' + str(application_credit) + '\t\t\t\t\t취득학점 : ' + str(acquisition_credit) +
                               '\t\t\t\t\t평균평점 : ')
        widget.setGeometry(25, 40, 950, 435)
        widget.show()

거기다 출력시 여백을 맞추기 위해 교과목명 이름 길이에 따라 탭 추가 개수를 다르게 해주는 코드도 있다보니

조~금 지저분해 보이긴 하지만 어쨌든 출력이 아주 마음에 들어 만족한다 !


Categories:

Updated:

Leave a comment