GUI是最具有交互性的程序作品之一,Python實現各種窗體程序還是比較方便的:
# - Tutorial 11
# - 2020-2-8
# - Johan
# - 題目:
# 1、窗體界面實現簡單文本處理
from tkinter import *
import sys
# 自定義類用於窗體顯示
class MyWindow:
__rmb = '0'
__yen = '0'
entry_rmb = None
entry_yen = None
var = None
# 在構造函數中創建窗體和控件
def __init__(self):
# 創建窗體
window = Tk()
window.title('中日匯率換算') # 窗體左上角標題
window.geometry('240x140') # 窗體長寬尺寸
var = StringVar()
# 菜單欄
menu_bar = Menu(window)
window.config(menu=menu_bar)
menu_operate = Menu(window)
menu_bar.add_cascade(label='操作', menu=menu_operate)
menu_operate.add_command(label='計算',
command=lambda: self.func_Calculate(var.get()))
menu_operate.add_separator() # 分割線
menu_operate.add_command(label='退出', command=self.func_Exit)
# 框架
frame = Frame(window)
frame.pack(fill=X)
# 人民幣輸入區
label_rmb = Label(frame, text='人民幣:')
label_rmb.grid(row=1, column=0)
self.entry_rmb = Entry(frame, textvariable=var)
self.entry_rmb.grid(row=1, column=1)
# 日元輸入區
label_yen = Label(frame, text='日元:')
label_yen.grid(row=2, column=0)
self.entry_yen = Entry(frame)
self.entry_yen.grid(row=2, column=1)
# 計算按鈕
button = Button(frame, text='開始換算',
command=lambda: self.func_Calculate(var.get()))
button.grid(row=3, column=0)
window.mainloop()
# 計算公式
def func_Calculate(self, value):
self.__rmb = '%s' % value
self.__yen = '%f' % (float(value) * 15.7354)
self.entry_yen.delete(0, END)
self.entry_yen.insert(0, self.__yen)
# 退出程序
def func_Exit(self):
sys.exit(0)
# 創建窗體,運行程序
try:
MyWindow()
except Exception as e:
print('Error:%s' % e)
運行結果:
把這個程序打包也比較方便,在cmd中進行,找到源文件的目錄,在目錄中打開CMD(直接在目錄欄中輸入cmd然後回車)
在控制檯輸入pyinstaller -w xxx.py即可打包,此處不考慮圖標等,打包方式很多,這種方式下運行程序不會出現控制檯窗口
沒有pyinstaller的在CMD輸入pip installer pyinstaller安裝這個包
打包好以後在dist目錄下找exe文件,點擊即可使用,這種打包方式的附帶文件很多,至於移植性怎麼樣還沒試
比起java的GUI,Python弄這個確實相對容易些,當然弄不好時bug也巨多