整合開發環境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