def game_main_panel() -> int: """ 游戏标题界面主面板 """ era_print.restart_line_print() era_print.line_feed_print( text_handle.align(game_config.game_name, "center") ) era_print.line_feed_print(text_handle.align(game_config.author, "right")) era_print.line_feed_print(text_handle.align(game_config.verson, "right")) era_print.line_feed_print( text_handle.align(game_config.verson_time, "right") ) era_print.line_feed_print() era_print.restart_line_print() era_print.lines_center_print( 1 / 3, text_loading.get_text_data(constant.FilePath.MESSAGE_PATH, "2") ) time.sleep(1) era_print.line_feed_print() era_print.restart_line_print() time.sleep(1) py_cmd.focus_cmd() menu_int = cmd_button_queue.option_int(constant.CmdMenu.LOGO_MENU) return menu_int
def draw(self): """ 绘制对象 """ self.text_list[1] = text_handle.align( self.text_list[1], "center", text_width=self.width - self.id_width ) text_width = text_handle.get_text_index(self.text_list[0]) self.text_list[0] += " " * (self.id_width - text_width) now_text = f"{self.text_list[0]}{self.text_list[1]}" now_text = now_text.rstrip() now_text = text_handle.align(now_text, "center", text_width=self.width) now_draw = draw.Button(now_text, str(self.button_id), cmd_func=self.change_clothing) now_draw.width = self.width now_draw.draw()
def __init__(self, text: str, width: int, is_button: bool, num_button: bool, button_id: int): """ 初始化绘制对象 """ self.text: str = str(text[0]) """ 存档id """ self.write_save: bool = text[1] """ 是否存储存档 """ self.draw_text: str = "" """ 存档信息绘制文本 """ self.width: int = width """ 最大宽度 """ self.is_button: bool = is_button """ 绘制按钮 """ self.is_num_button: bool = num_button """ 绘制数字按钮 """ self.button_id: int = button_id """ 数字按钮的id """ self.button_return: str = str(button_id) """ 按钮返回值 """ self.save_exist_judge = save_handle.judge_save_file_exist(self.text) """ 存档位是否已存在 """ save_name = _("空存档位") if self.save_exist_judge: save_head = save_handle.load_save_info_head(self.text) game_time: datetime.datetime = save_head["game_time"] save_time: datetime.datetime = save_head["save_time"] game_time_text = _("游戏时间:") + game_time.strftime("%Y-%m-%d %H:%M") save_time_text = _("存档时间:") + save_time.strftime("%Y-%m-%d %H:%M") save_name = f"No.{self.text} {save_head['game_verson']} {game_time_text} {save_head['character_name']} {save_time_text}" if is_button: if num_button: index_text = text_handle.id_index(button_id) now_text_width = self.width - len(index_text) new_text = text_handle.align(save_name, "center", text_width=now_text_width) self.draw_text = f"{index_text}{new_text}" self.button_return = str(button_id) else: new_text = text_handle.align(save_name, "center", text_width=self.width) self.draw_text = new_text self.button_return = text[0] else: new_text = text_handle.align(save_name, "center", text_width=self.width) self.draw_text = new_text
def __init__(self, text: int, width: int, is_button: bool, num_button: bool, button_id: int): """ 初始化绘制对象 """ self.text: int = text """ 角色id """ self.draw_text: str = "" """ 角色缩略信息绘制文本 """ self.width: int = width """ 最大宽度 """ self.is_button: bool = is_button """ 绘制按钮 """ self.num_button: bool = num_button """ 绘制数字按钮 """ self.button_id: int = button_id """ 数字按钮的id """ self.button_return: str = str(button_id) """ 按钮返回值 """ character_data = cache.character_data[self.text] character_name = character_data.name id_text = f"No.{self.text}" sex_config = game_config.config_sex_tem[character_data.sex] sex_text = _(f"性别:{sex_config.name}") age_text = _(f"年龄:{character_data.age}岁") hit_point_text = _( f"体力:({character_data.hit_point}/{character_data.hit_point_max})") mana_point_text = _( f"气力:({character_data.mana_point}/{character_data.mana_point_max})" ) now_text = f"{id_text} {character_name} {sex_text} {age_text} {hit_point_text} {mana_point_text}" if is_button: if num_button: index_text = text_handle.id_index(self.button_id) now_text_width = self.width - len(index_text) new_text = text_handle.align(now_text, "center", text_width=now_text_width) self.draw_text = f"{index_text}{new_text}" self.button_return = str(button_id) else: new_text = text_handle.align(now_text, "center", text_width=self.width) self.draw_text = new_text self.button_return = character_name else: new_text = text_handle.align(now_text, "center", text_width=self.width) self.draw_text = new_text
def __init__(self, text: List[str], width: int, is_button: bool, num_button: bool, button_id: int): """ 初始化绘制对象 """ self.draw_text = "" """ 场景路径绘制的文本 """ self.width: int = width """ 最大宽度 """ self.is_button: bool = is_button """ 绘制按钮 """ self.num_button: bool = num_button """ 绘制数字按钮 """ self.button_id: int = button_id """ 数字按钮的id """ self.button_return: str = str(button_id) """ 按钮返回值 """ self.draw_list: List[draw.NormalDraw] = [] """ 绘制的对象列表 """ self.scene_path: List[str] = text """ 对应场景路径 """ path_text = attr_text.get_scene_path_text(text) button_text = f"[{path_text}]" button_text = text_handle.align(button_text, text_width=width) name_draw = draw.Button(button_text, path_text, cmd_func=self.move_now) self.draw_text = button_text name_draw.width = width self.now_draw = name_draw """ 绘制的对象 """ self.button_return = path_text
def draw(self): """ 绘制按钮 """ if self.width < text_handle.get_text_index(self.text): now_text = "" if self.width > 0: for i in self.text: if text_handle.get_text_index( now_text) + text_handle.get_text_index( i) < self.width: now_text += i break now_text = now_text[:-2] + "~" else: now_index = text_handle.get_text_index(self.text) now_text = text_handle.align(self.text, "left", 0, 1, self.width) now_width = self.width - text_handle.get_text_index(now_text) now_text = " " * int(now_width) + now_text py_cmd.pcmd( now_text, self.return_text, normal_style=self.normal_style, on_style=self.on_mouse_style, cmd_func=self.cmd_func, arg=self.args, )
def __init__(self, text: int, width: int, is_button: bool, num_button: bool, button_id: int): """ 初始化绘制对象 """ self.draw_text = "" """ 场景路径绘制文本 """ self.width: int = width """ 最大宽度 """ self.is_button: bool = is_button """ 绘制按钮 """ self.num_button: bool = num_button """ 绘制数字按钮 """ self.button_id: int = button_id """ 数字按钮的id """ self.button_return: str = str(button_id) """ 按钮返回值 """ self.draw_list: List[draw.NormalDraw] = [] """ 绘制的对象列表 """ character_data: game_type.Character = cache.character_data[text] self.scene_path: List[str] = character_data.position """ 角色所在场景 """ path_text = attr_text.get_scene_path_text(self.scene_path) button_text = f"{character_data.name}:[{path_text}]" button_text = text_handle.align(button_text, text_width=width) name_draw = draw.Button(button_text, character_data.name, cmd_func=self.move_now) name_draw.width = width self.now_draw = name_draw """ 绘制的对象 """ self.button_return = character_data.name
def draw(self): """ 绘制面板 """ character_data = cache.character_data[self.character_id] title_draw = draw.TitleLineDraw(_("人物服装"), self.width) title_draw.draw() draw_list = [] self.return_list = [] id_width = 0 for clothing_type in game_config.config_clothing_type: type_data = game_config.config_clothing_type[clothing_type] type_draw = draw.LittleTitleLineDraw(type_data.name, self.width, ":") draw_list.append(type_draw) if clothing_type in character_data.put_on and isinstance( character_data.put_on[clothing_type], UUID): now_draw = ClothingInfoDrawPanel( self.character_id, clothing_type, character_data.put_on[clothing_type], self.width, 1, len(self.return_list), ) self.return_list.append(str(len(self.return_list))) now_id_width = text_handle.get_text_index( now_draw.text_list[0]) if now_id_width > id_width: id_width = now_id_width else: now_text = _("未穿戴") if not self.character_id: now_id = len(self.return_list) now_id_text = text_handle.id_index(now_id) now_width = self.width - len(now_id_text) now_text = text_handle.align(now_text, "center", text_width=now_width) now_text = f"{now_id_text}{now_text}" now_draw = draw.Button(now_text, str(now_id), cmd_func=self.see_clothing_list, args=(clothing_type, )) self.return_list.append(str(now_id)) else: now_draw = draw.CenterDraw() now_draw.text = now_text now_draw.width = self.width draw_list.append(now_draw) draw_list.append(line_feed) for value in draw_list: if "id_width" in value.__dict__: value.id_width = id_width value.draw()
def print_map(map_path: list) -> list: """ 按地图路径绘制地图 Ketword arguments: map_path -- 地图路径 """ map_path_str = get_map_system_path_str_for_list(map_path) map_draw = get_map_draw_for_map_path(map_path_str) character_position = cache_contorl.character_data["character"][0].position character_now_scene_id = get_scene_id_in_map_for_scene_path_on_map_path( character_position, map_path ) input_s = [] map_y_list = map_draw["Draw"] map_x_cmd_list_data = map_draw["Cmd"] map_x_cmd_id_list_data = map_draw["CmdId"] for map_x_list_id in range(len(map_y_list)): map_x_list = map_y_list[map_x_list_id] now_cmd_list = map_x_cmd_list_data[map_x_list_id] now_cmd_id_list = map_x_cmd_id_list_data[map_x_list_id] cmd_list_str = "".join(now_cmd_list) era_print.normal_print( text_handle.align(map_x_list + cmd_list_str, "center", True), rich_text_judge=False, ) i = 0 while i in range(len(map_x_list)): if now_cmd_id_list != []: while i == now_cmd_id_list[0]: if now_cmd_list[0] == character_now_scene_id: era_print.normal_print( now_cmd_list[0], "nowmap", rich_text_judge=False ) input_s.append(None) else: py_cmd.pcmd(now_cmd_list[0], now_cmd_list[0], None) input_s.append(now_cmd_list[0]) now_cmd_list = now_cmd_list[1:] now_cmd_id_list = now_cmd_id_list[1:] if now_cmd_list == []: break if now_cmd_id_list != []: era_print.normal_print(map_x_list[i : now_cmd_id_list[0]]) i = now_cmd_id_list[0] else: era_print.normal_print(map_x_list[i:]) i = len(map_x_list) else: era_print.normal_print(map_x_list[i:]) i = len(map_x_list) era_print.line_feed_print() return input_s
def draw(self): self.text_list[1] = text_handle.align(self.text_list[1], "center", 0, 1, self.width - self.id_width) text_width = text_handle.get_text_index(self.text_list[0]) if text_width < self.id_width: self.text_list[0] += " " * (self.id_width - text_width) now_text = f"{self.text_list[0]}{self.text_list[1]}" if self.draw_button: now_draw = draw.Button(now_text, str(self.button_id), cmd_func=self.see_clothing_info) else: now_draw = draw.NormalDraw() now_draw.text = now_text now_draw.width = self.width now_draw.draw()
def draw(self): """ 绘制文本 """ if int(len(self)) > int(self.width): now_text = "" if self.width: for i in self.text: if text_handle.get_text_index(now_text) + text_handle.get_text_index(i) < self.width: now_text += i break now_text = now_text[:-2] + "~" else: now_text = text_handle.align(self.text, "left", 0, 1, self.width) io_init.era_print(now_text, self.style)
def lines_center_print(sleep_time: float, string="", style="standard"): """ 将多行文本以居中的对齐方式进行逐字绘制 Keyword arguments: sleep_time -- 逐字的间隔时间 string -- 需要逐字绘制的文本 style -- 文本的默认样式 """ text_wait = cache_contorl.text_wait if text_wait != 0: time.sleep(text_wait) cache_contorl.wframe_mouse["w_frame_line_state"] = 1 string = str(string) string_list = string.split("\n") width = game_config.text_width style_name_list = game_config.get_font_data_list() string_center_list = "" for i in range(0, len(style_name_list)): style_text_head = "<" + style_name_list[i] + ">" style_text_tail = "</" + style_name_list[i] + ">" if style_text_head in string: string_center = string.replace(style_text_head, "") string_center = string_center.replace(style_text_tail, "") string_center_list = string_center.split("\n") else: string_center_list = string_list for i in range(0, len(string_list)): width_i = int(width) / 2 count_index = text_handle.get_text_index(string_center_list[i]) count_i = int(count_index) / 2 if cache_contorl.wframe_mouse["w_frame_re_print"] == 1: normal_print("\n") normal_print(" " * int((width_i - count_i))) normal_print(string_list[i]) else: normal_print(" " * int((width_i - count_i))) one_by_one_print(sleep_time, string_list[i]) normal_print("\n") if cache_contorl.wframe_mouse["w_frame_lines_up"] == 1: index_i_up = i + 1 cache_contorl.wframe_mouse["w_frame_lines_up"] = 2 for index_i_up in range(index_i_up, len(string_list)): restart_line_print( text_handle.align(string_list[index_i_up], "center"), style, ) cache_contorl.wframe_mouse["w_frame_line_state"] = 2 break cache_contorl.wframe_mouse["w_frame_re_print"] = 0
def __init__(self, text: str, width: int, is_button: bool, num_button: bool, button_id: int): """ 初始化绘制对象 """ self.character_id: int = int(text) """ 角色id """ self.draw_text: str = "" """ 角色名绘制文本 """ self.width: int = width """ 最大宽度 """ self.is_button: bool = is_button """ 绘制按钮 """ self.num_button: bool = num_button """ 绘制数字按钮 """ self.button_id: int = button_id """ 数字按钮的id """ self.button_return: str = str(button_id) """ 按钮返回值 """ character_data: game_type.Character = cache.character_data[ self.character_id] sex_text = game_config.config_sex_tem[character_data.sex].name character_name = character_data.name + f"({sex_text})" name_draw = draw.NormalDraw() if is_button: if num_button: index_text = text_handle.id_index(button_id) button_text = f"{index_text} {character_name}" name_draw = draw.CenterButton(button_text, self.button_return, self.width, cmd_func=self.see_character) else: button_text = f"[{character_name}]" name_draw = draw.CenterButton(button_text, character_name, self.width, cmd_func=self.see_character) self.button_return = character_name self.draw_text = button_text else: character_name = f"[{character_name}]" character_name = text_handle.align(character_name, "center", 0, 1, self.width) name_draw.text = character_name self.draw_text = character_name name_draw.width = self.width self.now_draw = name_draw """ 绘制的对象 """
def draw(self): """ 绘制列表 """ now_width = 0 for value in self.draw_list: now_width += len(value) now_text = " " * now_width fix_text = text_handle.align(now_text, "center", 1, 1, self.width) fix_draw = NormalDraw() fix_draw.text = fix_text fix_draw.width = len(fix_text) fix_draw.draw() for value in self.draw_list: value.draw() now_width = fix_draw.width * 2 + now_width if now_width < self.width: fix_draw.text += int(self.width - now_width) * " " fix_draw.draw()
def draw(self): """ 绘制文本 """ self.width = int(self.width) if len(self) > self.width: now_text = "" if self.width > 0: for i in self.text: if text_handle.get_text_index(now_text) + text_handle.get_text_index(i) < self.width: now_text += i break now_text = now_text[:-2] + "~" io_init.era_print(now_text, self.style) elif len(self) > self.width - 1: now_text = " " + self.text elif len(self) > self.width - 2: now_text = " " + self.text + " " else: now_text = text_handle.align(self.text, "center", 0, 1, self.width) if len(self) < self.width: now_text += " " * (int(self.width) - text_handle.get_text_index(now_text)) io_init.era_print(now_text, self.style)
def see_character_list_panel(max_page: int) -> list: """ 查看角色列表面板 Keyword arguments: max_page -- 最大角色列表页数 """ title_text = text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "74") era_print.little_title_print(title_text) input_s = [] page_id = int(cache_contorl.panel_state["SeeCharacterListPanel"]) page_show = int(game_config.character_list_show) character_max = len(cache_contorl.character_data["character"]) - 1 if page_id == max_page: show_page_start = page_show * page_id show_page_over = show_page_start + (character_max + 1 - show_page_start) else: show_page_over = page_show * (page_id + 1) show_page_start = show_page_over - page_show for i in range(show_page_start, show_page_over): cmd_id = i - show_page_start cmd_id_text = cmd_button_queue.id_index(cmd_id) cmd_text = attr_text.get_character_abbreviations_info(i) cmd_id_text_index = text_handle.get_text_index(cmd_id_text) window_width = int(game_config.text_width) text_width = window_width - cmd_id_text_index cmd_text = text_handle.align(cmd_text, "center", text_width=text_width) cmd_text = cmd_id_text + " " + cmd_text cmd_id = str(cmd_id) era_print.little_line_print() py_cmd.pcmd(cmd_text, cmd_id, None) input_s.append(cmd_id) era_print.normal_print("\n") page_text = "(" + str(page_id) + "/" + str(max_page) + ")" era_print.page_line_print(sample="-", string=page_text) era_print.line_feed_print() return input_s
def see_save_list_panel(page_save_value: int, last_save_page_value: int, auto_save=False) -> list: """ 查看存档页面面板 Keyword arguments: page_save_value -- 单页最大存档显示数量 last_save_page_value -- 最后一页存档显示数量 auto_save -- 自动存档显示开关 (default False) """ save_panel_page = int(cache_contorl.panel_state["SeeSaveListPanel"]) + 1 input_s = [] id_text_list = [] id_info_text = text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "72") text_width = int(game_config.text_width) save_none_text = text_loading.get_text_data(constant.FilePath.MESSAGE_PATH, "20") if save_panel_page == int(game_config.save_page) + 1: start_save_id = int(page_save_value) * (save_panel_page - 1) over_save_id = start_save_id + last_save_page_value else: over_save_id = int(page_save_value) * save_panel_page start_save_id = over_save_id - int(page_save_value) for i in range(0, over_save_id - start_save_id): id = cmd_button_queue.id_index(i) save_id = start_save_id + i if auto_save and not save_handle.judge_save_file_exist(str(save_id)): id_text = id_info_text + " " + str(save_id) + ":" id_text_list.append(id_text) else: id_text = id + id_info_text + " " + str(save_id) + ":" id_text_list.append(id_text) for i in range(0, over_save_id - start_save_id): id = str(i) id_text = id_text_list[i] era_print.little_line_print() save_id = str(save_handle.get_save_page_save_id(page_save_value, i)) if save_handle.judge_save_file_exist(save_id): save_info_head = save_handle.load_save_info_head(save_id) game_time_data = save_info_head["game_time"] game_time_text = game_time.get_date_text(game_time_data) character_name = save_info_head["character_name"] save_verson = save_info_head["game_verson"] save_text = (character_name + " " + game_time_text + " " + save_verson) id_text_index = int(text_handle.get_text_index(id_text)) fix_id_width = text_width - id_text_index save_align = text_handle.align(save_text, "center", text_width=fix_id_width) id_text = id_text + save_align py_cmd.pcmd(id_text, id, None) input_s.append(id) era_print.normal_print("\n") else: id_text_index = int(text_handle.get_text_index(id_text)) fix_id_width = text_width - id_text_index save_none_align = text_handle.align(save_none_text, "center", text_width=fix_id_width) id_text = id_text + save_none_align if auto_save: era_print.normal_print(id_text) else: py_cmd.pcmd(id_text, id, None) input_s.append(id) era_print.line_feed_print() if auto_save: auto_info_text = text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "73") i = page_save_value id = cmd_button_queue.id_index(i) era_print.little_line_print() if save_handle.judge_save_file_exist("auto"): save_info_head = save_handle.load_save_info_head("auto") game_time_data = save_info_head["game_time"] game_time_text = game_time.get_date_text(game_time_data) character_name = save_info_head["character_name"] save_verson = save_info_head["game_verson"] save_text = (character_name + " " + game_time_text + " " + save_verson) id_text = id + auto_info_text id_text_index = int(text_handle.get_text_index(id_text)) fix_id_width = text_width - id_text_index save_text_align = text_handle.align(save_text, "center", text_width=fix_id_width) id_text = id_text + save_text_align py_cmd.pcmd(id_text, id, None) input_s.append(id) era_print.line_feed_print() else: id_text_index = int(text_handle.get_text_index(auto_info_text)) fix_id_width = text_width - id_text_index save_none_align = text_handle.align(save_none_text, "center", text_width=fix_id_width) id_text = auto_info_text + save_none_align era_print.normal_print(id_text) era_print.line_feed_print() return input_s
def see_food_shop_list_by_food_type(max_page: int, food_list: list) -> list: """ 用于查看餐馆出售食物列表的面板 Keyword arguments: max_page -- 最大页数 Return arguments: list -- 监听的按钮列表 """ era_print.restart_line_print("+") tag_text_index = 0 now_page_id = int( cache_contorl.panel_state["SeeFoodShopListByFoodTypePanel"] ) now_page_max = game_config.food_shop_item_max now_page_start_id = now_page_id * now_page_max now_page_end_id = now_page_start_id + now_page_max if not len(food_list): era_print.normal_print( text_loading.get_text_data(constant.FilePath.MESSAGE_PATH, "34") ) era_print.line_feed_print() return [] if now_page_end_id > len(food_list): now_page_end_id = len(food_list) input_s = [] text_list = [] fix_text = "" for i in range(now_page_start_id, now_page_end_id): now_food = food_list[i] if now_food.recipe == -1: food_config = text_loading.get_text_data( constant.FilePath.FOOD_PATH, now_food.id ) food_name = food_config["Name"] else: food_name = cache_contorl.recipe_data[now_food.recipe].name now_index = cmd_button_queue.id_index(tag_text_index) food_text = now_index + " " + food_name food_text += " " + text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "154" ) if "Hunger" in now_food.feel: food_text += str(round(now_food.feel["Hunger"], 2)) else: food_text += "0" food_text += " " + text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "153" ) if "Thirsty" in now_food.feel: food_text += str(round(now_food.feel["Thirsty"], 2)) else: food_text += "0" food_text += ( " " + text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "155" ) + str(now_food.weight) ) food_text += text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "156" ) food_text += " " + text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "152" ) food_text += text_loading.get_text_data( constant.FilePath.STAGE_WORD_PATH, "151" )[now_food.quality] text_list.append(food_text) now_fix_text = text_handle.align(food_text, "center", True) if fix_text == "": fix_text = now_fix_text if len(now_fix_text) < len(fix_text): fix_text = now_fix_text tag_text_index += 1 for i in range(tag_text_index): now_text = fix_text + text_list[i] now_text = text_handle.align(now_text) py_cmd.pcmd(now_text, i) era_print.normal_print("\n") input_s.append(str(i)) if i < tag_text_index - 1: era_print.restart_line_print("*") return input_s
def update(self): """ 更新绘制对象 """ self.return_list = [] start_id = self.now_page * self.limit total_page = int((len(self.text_list) - 1) / self.limit) if start_id >= len(self.text_list): self.now_page = total_page start_id = self.now_page * self.limit now_page_list = [] for i in range(start_id, len(self.text_list)): if len(now_page_list) >= self.limit: break now_page_list.append(self.text_list[i]) draw_text_group = value_handle.list_of_groups(now_page_list, self.column) draw_list: List[draw.NormalDraw] = [] self.end_index = self.button_start_id index = self.button_start_id line_feed = draw.NormalDraw() line_feed.text = "\n" line_feed.width = 1 for draw_text_list in draw_text_group: if self.row_septal_lines != "" and index: line_draw = draw.LineDraw(self.row_septal_lines, self.width) draw_list.append(line_draw) now_width = self.width if self.col_septal_lines != "": col_index = len(draw_text_list) + 1 col_width = text_handle.get_text_index(self.col_septal_lines) now_width -= col_width * col_index value_width = int(now_width / self.column) col_fix_draw = draw.NormalDraw() col_fix_draw.text = self.col_septal_lines col_fix_draw.width = 1 draw_list.append(col_fix_draw) for value in draw_text_list: is_button = 1 if value == self.null_button_text: is_button = 0 value_draw = self.draw_type(value, value_width, is_button, self.num_button, index) value_draw.draw_text = text_handle.align(value_draw.draw_text, "center", 0, 1, value_width) if self.num_button: self.return_list.append(str(index)) else: self.return_list.append(value_draw.button_return) index += 1 draw_list.append(value_draw) draw_list.append(col_fix_draw) draw_list.append(line_feed) if self.num_button: self.end_index = index if total_page: now_line = draw.LineDraw("-", self.width) draw_list.append(now_line) page_change_start_id = self.button_start_id if self.num_button: page_change_start_id = index old_page_index_text = text_handle.id_index(page_change_start_id) old_page_button = draw.CenterButton( _("{old_page_index_text} 上一页").format(old_page_index_text=old_page_index_text), str(page_change_start_id), int(self.width / 3), cmd_func=self.old_page, ) self.return_list.append(str(page_change_start_id)) draw_list.append(old_page_button) page_text = f"({self.now_page}/{total_page})" page_draw = draw.CenterDraw() page_draw.width = int(self.width / 3) page_draw.text = page_text draw_list.append(page_draw) next_page_index_text = text_handle.id_index(page_change_start_id + 1) next_page_button = draw.CenterButton( _("{next_page_index_text} 下一页").format(next_page_index_text=next_page_index_text), str(page_change_start_id + 1), int(self.width / 3), cmd_func=self.next_page, ) self.end_index = page_change_start_id + 1 self.return_list.append(str(page_change_start_id + 1)) draw_list.append(next_page_button) draw_list.append(line_feed) self.draw_list = draw_list