Skip to content

Latest commit

 

History

History
81 lines (72 loc) · 4.33 KB

211129.md

File metadata and controls

81 lines (72 loc) · 4.33 KB

Day 57

Riot Open API 사용

project repository

오늘은 간단하게 챔피언 숙련도 확인 버튼만 완성시키고, 추가로 column 너비 조정을 했다.

def display_match(self):
    # 이전에 가지고 온 소환사 정보가 있으면 다시 가져오지 않고 기존 소환사 정보 사용
    if self.l.valid_name == 1:
        pass
    else:
        self.l.get_summoner_information(self.SummonerName.text())

    if self.l.valid_name == 0:
        self.StatusLabel.setText('해당하는 소환사가 없습니다.')
        self.SummonerName.clear()
    else:
        self.StatusLabel.setText(self.l.summoner_info['name'] + '님의 전적을 검색합니다.')
        self.l.get_match_information(self.l.summoner_info['name'])
        column_headers = ['승패', '챔피언', '게임모드','킬', '데스', '어시', 'KDA', '게임시간']
        self.l.make_match_data()
        temp_list = [0 for i in range(len(column_headers))]

        self.ResultTable.setRowCount(len(self.l.match_list))
        self.ResultTable.setColumnCount(len(column_headers))
        self.ResultTable.setHorizontalHeaderLabels(column_headers)
        row = 0
        
        for i in self.l.match_info_dict:
            temp_list[2] = self.l.match_info_dict[i]['info']['gameMode']
            temp_list[7] = str(self.l.match_info_dict[i]['info']['gameDuration'] // 60) + '분 ' + str(self.l.match_info_dict[i]['info']['gameDuration'] % 60) + '초'
            for j in self.l.game_detail_data[i]:
                if j.lower() == self.SummonerName.text().lower():
                    temp_list[0] = "승리" if self.l.game_detail_data[i][j]['match_result'] else "패배"
                    temp_list[1] = self.l.game_detail_data[i][j]['champName']
                    temp_list[3] = self.l.game_detail_data[i][j]['kills']
                    temp_list[4] = self.l.game_detail_data[i][j]['deaths']
                    temp_list[5] = self.l.game_detail_data[i][j]['assists']
                    temp_list[6] = self.l.game_detail_data[i][j]['KDA']
            print(temp_list)
            for k, v in enumerate(temp_list):
                self.ResultTable.setItem(row, k, QTableWidgetItem(str(v)))
            row += 1
        self.ResultTable.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)   # column 너비 조정
        self.ResultTable.resizeRowsToContents()                                         # 열 높이 조정
        self.StatusLabel.setText(self.l.summoner_info['name'] + '님의 전적 검색이 완료되었습니다.')

setSectionResizeMode를 통해 column의 너비를 조정했다.
추가로 StatusLabel이라는 display widget을 하나 추가해서 메세지를 출력하도록 해놨다.

def display_mastery(self):
    if self.l.valid_name == 1:
        pass
    else:
        self.l.get_summoner_information(self.SummonerName.text())

    if self.l.valid_name == 0:
        self.StatusLabel.setText('해당하는 소환사가 없습니다.')
        self.SummonerName.clear()
    else:
        self.StatusLabel.setText(self.l.summoner_info['name'] + '님의 숙련도를 가져오고 있습니다.')
        self.l.get_champion_mastery()
        column_headers = ['챔피언', '숙련도 레벨', '숙련도 점수']

        self.ResultTable.setRowCount(len(self.l.champ_mastery))
        self.ResultTable.setColumnCount(len(column_headers))
        self.ResultTable.setHorizontalHeaderLabels(column_headers)

        for i in range(len(self.l.champ_mastery)):
            self.ResultTable.setItem(i, 0, QTableWidgetItem(self.l.champion_name_key_dict[str(self.l.champ_mastery[i]['championId'])]['ko']))
            self.ResultTable.setItem(i, 1, QTableWidgetItem(str(self.l.champ_mastery[i]['championLevel'])))
            self.ResultTable.setItem(i, 2, QTableWidgetItem(str(self.l.champ_mastery[i]['championPoints'])))
        self.ResultTable.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)   # column 너비 조정
        self.ResultTable.resizeRowsToContents()                                         # 열 높이 조정
        self.StatusLabel.setText(self.l.summoner_info['name'] + '님의 숙련도를 가져왔습니다.')

display_match를 활용하여 작성했다.
그래서 크게 다른 부분도 없고 어렵지도 않았다.

다음은 승률을 시각화해볼 예정이다.