오늘은 간단하게 챔피언 숙련도 확인 버튼만 완성시키고, 추가로 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를 활용하여 작성했다.
그래서 크게 다른 부분도 없고 어렵지도 않았다.
다음은 승률을 시각화해볼 예정이다.