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()
本文来自博客园,作者:术科术,转载请注明原文链接:https://www.cnblogs.com/shukeshu/p/15004326.html