1. 程式人生 > 其它 >Python-tkinter簡單的GUI Demo

Python-tkinter簡單的GUI Demo

 1 #!/usr/bin/python3
 2 # -*- coding:utf -8 -*-
 3 
 4 """
 5 @author:ss
 6 @file:gui.py
 7 @time:2021-07-11 18:46
 8 @desc:
 9 """
10 
11 from tkinter import *
12 import tkinter as tk
13 
14 from oil.oil_station_formula import OilStationFormula
15 
16 master = Tk()
17 master.title("By ss")
18 theLabel = tk.Label(master, text="
進入GUI世界,請開始你的表演!\n(建議直接輸入正確的數值進行計算,否則會發生意外噢!)") 19 theLabel.pack() 20 21 frame = Frame(master) 22 frame.pack(padx=100, pady=100) 23 24 v1 = StringVar() 25 v2 = StringVar() 26 v3 = StringVar() 27 v4 = StringVar() 28 v5 = StringVar() 29 30 31 def test(content): 32 """ 33 游標失去時,這個函式就會執行 34 :param content:
35 :return: 36 """ 37 return content.isdigit() 38 39 40 testCMD = master.register(test) # 需要將函式包裝一下,必要的 41 ''' 42 43 開啟Entry對輸入文字驗證功能。 44 1、實現該功能,需要通過設定validate、validatecommand和invalidcommand三個選項。 45 2、啟用驗證的開關是validate選項,該選項可以設定以下的值: 46 focus:當entry元件獲得或者失去焦點的時候驗證 47 focusin:當entry元件獲得焦點的時候驗證
48 focusout:當entry元件失去焦點的時候驗證 49 key:當輸入框被編輯的時候驗證 50 51 52 # %P表示 當輸入框的值允許改變,該值有效。該值為當前文字框內容 53 # %v(小寫大寫不一樣的),當前validate的值 54 # %W表示該元件的名字 55 ''' 56 57 Label(frame, text="油站價").grid(row=0, sticky=E, column=0) 58 e1 = Entry(frame, textvariable=v1, validate="key", width=6).grid(row=0, column=1) 59 Label(frame, text="平臺價").grid(row=0, sticky=E, column=2) 60 e2 = Entry(frame, textvariable=v2, validate="key", width=6).grid(row=0, column=3) 61 Label(frame, text="輸入金額").grid(row=0, sticky=E, column=4) 62 e3 = Entry(frame, textvariable=v3, validate="key", width=7).grid(row=0, column=5) 63 Label(frame, text="優惠券金額").grid(row=0, sticky=E, column=6) 64 e4 = Entry(frame, textvariable=v4, validate="key", width=6).grid(row=0, column=7) 65 Label(frame, text="計算結果").grid(row=1, sticky=E, column=0) 66 e5 = Entry(frame, textvariable=v5, width=25).grid(row=1, column=1,rowspan=7,columnspan=7, sticky=W+E+N+S, padx=5, pady=5) 67 68 69 def calc(): 70 float(v1.get()) 71 float(v2.get()) 72 float(v3.get()) 73 float(v4.get()) 74 o = OilStationFormula(float(v1.get()), float(v2.get()),float(v3.get()), float(v4.get())) 75 o.oil_main() 76 result = o.one_sku_individual_discount_amount() 77 78 # 清空回顯列表可見部分,類似clear命令 79 for i in range(10): 80 v5.set("") 81 82 v5.set(result) 83 84 85 Button(frame, text="馬上計算", command=calc).grid(row=9, column=2, pady=5) 86 87 mainloop()