陳彥勳_Python/Tkinter/Entry建構輸入工具/Pop移除串列元素
整合開發環境IDE
程式碼
!pip install gradio import gradio as gr class BankManager: def __init__(self): self.initial_banks = [ '臺灣土地銀行', '合作金庫商業銀行', '第一商業銀行', '華南商業銀行', '彰化商業銀行', '台北富邦商業銀行', '國泰世華商業銀行', '兆豐國際商業銀行', '花旗(台灣)商業銀行', '王道商銀', '臺灣中小企業銀行', '渣打國際商業銀行', '滙豐(台灣)商業銀行', '臺灣新光商業銀行', '聯邦商業銀行', '遠東商業銀行', '元大商業銀行', '永豐商業銀行', '玉山商業銀行', '凱基商業銀行', '星展(臺灣)商業銀行', '台新國際商業銀行', '中國信託商業銀行', '將來商業銀行', '連線商業銀行', '樂天國際商業銀行' ] self.banks = self.initial_banks.copy() def format_banks(self): formatted_list = [] for i in range(0, len(self.banks), 3): line = self.banks[i:i+3] while len(line) < 3: line.append('') # 填充空白 formatted_list.append('{:<20} {:<20} {:<20}'.format(*line)) return '\n'.join(formatted_list) def show_banks(self): return self.format_banks() def add_bank(self): try: self.banks.append('臺灣銀行') return self.format_banks() except Exception as e: return f"Error: {str(e)}" def reset_banks(self): try: self.banks = self.initial_banks.copy() return self.format_banks() except Exception as e: return f"Error: {str(e)}" def delete_label(self): return '' def ABC(self): print("ABC function called") def kill(self): try: if self.banks: self.banks.pop() # pop() 移除 banks 列表的最後一個元素 self.ABC() # 调用 ABC 函数 return self.format_banks() except Exception as e: return f"Error: {str(e)}" def add_custom_bank(self, bank_name): try: if bank_name: # 確保輸入不為空 self.banks.append(bank_name) return self.format_banks() except Exception as e: return f"Error: {str(e)}" def search_bank(self, search_term): try: search_results = [bank for bank in self.banks if search_term in bank] return self.format_banks(search_results) if search_results else "找不到符合的銀行" except Exception as e: return f"Error: {str(e)}" def sort_banks(self): try: self.banks = sorted(self.banks) return self.format_banks() except Exception as e: return f"Error: {str(e)}" def delete_specific_bank(self, bank_name): try: if bank_name in self.banks: self.banks.remove(bank_name) return self.format_banks() except Exception as e: return f"Error: {str(e)}" bank_manager = BankManager() with gr.Blocks(css=""" .textbox {background-color: lightgray;} .btn-gray {background-color: lightgray;} """) as demo: gr.Markdown("# 陳彥勳python建立Gradio視窗使用者介面") output = gr.Textbox(label="銀行列表", value="", placeholder="按下顯示銀行以查看列表", elem_classes="textbox") input_bank = gr.Textbox(label="新增銀行名稱", placeholder="輸入銀行名稱", elem_classes="textbox") search_term = gr.Textbox(label="搜尋銀行", placeholder="輸入銀行名稱以搜尋", elem_classes="textbox") delete_bank = gr.Textbox(label="刪除銀行名稱", placeholder="輸入要刪除的銀行名稱", elem_classes="textbox") with gr.Row(): btn_show = gr.Button("顯示銀行", elem_classes="btn-gray") btn_add = gr.Button("增加", elem_classes="btn-gray") btn_reset = gr.Button("還原", elem_classes="btn-gray") with gr.Row(): btn_delete = gr.Button("刪除", elem_classes="btn-gray") btn_kill = gr.Button("移除最後一個", elem_classes="btn-gray") btn_add_custom = gr.Button("新增自訂銀行", elem_classes="btn-gray") with gr.Row(): btn_search = gr.Button("搜尋", elem_classes="btn-gray") btn_sort = gr.Button("排序", elem_classes="btn-gray") btn_delete_specific = gr.Button("刪除特定銀行", elem_classes="btn-gray") btn_show.click(bank_manager.show_banks, outputs=output) btn_add.click(bank_manager.add_bank, outputs=output) btn_reset.click(bank_manager.reset_banks, outputs=output) btn_delete.click(bank_manager.delete_label, outputs=output) btn_kill.click(bank_manager.kill, outputs=output) btn_add_custom.click(bank_manager.add_custom_bank, inputs=input_bank, outputs=output) btn_search.click(bank_manager.search_bank, inputs=search_term, outputs=output) btn_sort.click(bank_manager.sort_banks, outputs=output) btn_delete_specific.click(bank_manager.delete_specific_bank, inputs=delete_bank, outputs=output) demo.launch()
https://chenyenhsun.blogspot.com/2025/03/idecolabpython.html
回覆刪除https://chenyenhsun.blogspot.com/2025/04/javascriptpython.html
https://chenyenhsun.blogspot.com/2025/03/pythontkinterentrypop.html