Skip to content

Latest commit

 

History

History
55 lines (46 loc) · 3.26 KB

211127.md

File metadata and controls

55 lines (46 loc) · 3.26 KB

Day 55

Riot Open API 사용

project repository

오늘은 GUI를 간단하게 qtdesigner를 사용해서 구성하고, 위젯들과 함수를 연결하는 일을 했다.

일단은 가장 문제가 된 점은 QTableWidget에 전적들을 띄워야 하는데 이 때 item을 추가하는 부분에서 고민을 하고있다.

게임의 주요 내용인 승패, 사용한 챔피언, 게임모드, 킬, 데스, 어시스트, KDA, 게임 시간을 보여줘야 하는데 이것들을 그냥 함수를 안쓰고 하려니 저번에 만든 visualize_match 함수가 하는 역할과 거의 같아서 한 번에 모든 게임의 상세 정보를 가져오는 것이 과연 효율적인가에 대해 고민을 했었다.

그래도 한번 visualize_match 함수를 손봐서 match_list에 있는 모든 게임의 상세 정보를 관리하기 편하게 데이터 전처리를 하는 함수로 개선을 하고 이렇게 만들어진 데이터를 이용해서 tablewidget에 item으로 추가하는 것이 나을 것 같다.

Main_Window = uic.loadUiType('Main_window.ui')[0]

class WindowClass(QMainWindow, Main_Window):
    def __init__(self):
        super().__init__()
        self.l = rf.League_of_Legend()
        self.setupUi(self)
        self.SearchButton.clicked.connect(self.display_match())
        self.MasteryButton.clicked.connect(self.display_mastery())
        self.show()
    
    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.ResultTable.setItem(0, 0, QTableWidgetItem("해당하는 소환사가 없습니다."))
            self.SummonerName.clear()
        else:
            column_headers = ['승패', '챔피언', '게임모드','킬', '데스', '어시', 'KDA', '게임시간']
            self.ResultTable.setHorizontalHeaderLabels(column_headers)

            # 어차피 이렇게 가져올거면 그냥 애초에 각 게임의 상세 내역을 visualize_match 함수로 만들어 버리는 것은 어떤가?
            # 그러면 안보는 게임의 상세 내역도 처리해서 비효율적이지 않을까?
            for i in self.l.match_info_dict:
                row = 0
                match_result = "승리" if self.l.match_info_dict[i]['teams'][0]['win'] == 1 else "패배"
                for j in self.l.match_info_dict[i]['info']['participants']:
                    if j['summonerName'] == self.l.summoner_info['name']:
                        used_champion = j['championName']
                        player_kills = j['kills']
                        player_deaths = j['deaths']
                        player_assists = j['assists']
                        player_kda = round((player_kills + player_assists) / player_deaths, 1)
                game_mode = self.l.match_info_dict[i]['info']['gameMode']
                game_duration = str(self.l.match_info_dict[i]['info']['gameDuration'] // 60) + '분 ' + str(self.l.match_info_dict[i]['info']['gameDuration'] % 60) + '초'

                for col in len(column_headers):
                    pass