身高计算器超级UI大更新
直接上视频:
身高计算器UI超强改良版
源码
import tkinter.ttk
import tkinter.messagebox
import tkinter
import tkinter
from tkinter import filedialog
import os
from PIL import ImageTk
from tkinter import *
def starta():
def give_label_with_picture(master, image) -> Label:
""" 给一个包含图片的 Label,可以直接布局 """
photo = PhotoImage(file=image)
lab = Label(master)
lab.config(image=photo)
lab.image = photo
return lab
# 创建tkinter应用程序窗口
root0 = tkinter.Tk()
# 设置窗口大小和位置
root0.geometry('700x300+400+160')
# 不允许改变窗口大小
root0.resizable(False, False)
# 设置窗口标题
root0.title('身高计算器')
root0.iconbitmap('点赞.ico')
entryP1 = tkinter.Entry(root0)
entryP1.place(x=0, y=0, width=700, height=300)
## 在窗口上放置标签组件和用于输入姓名的文本框组件
lbH = tkinter.Label(root0, text='请 输 入 您 的 身 高 : ')
lbH.place(x=170, y=80, width=150, height=25)
lbs = tkinter.Label(root0, text='单 位 : 厘 米 ( c m ) ')
lbs.place(x=470, y=80, width=120, height=25)
entryH = tkinter.Entry(root0)
entryH.place(x=320, y=80, width=150, height=25)
entryP0 = tkinter.Entry(root0)
entryP0.place(x=550, y=120, width=180, height=180)
give_label_with_picture(entryP0, image='./portraits_1.png').pack()
give_label_with_picture(entryP1, image='./恐鬼症.jpg').pack()
def buttonClick():
if len(entryH.get()) > 0 and len(entryH.get()) <= 3 and (entryH.get()[0] == '1' or entryH.get()[0] == '2'):
lbR = tkinter.Label(root0, text='计 算 完 成 ! 您 的 身 高 为: ' + entryH.get() + ' 厘 米 !')
lbR.place(x=170, y=180, width=250, height=25)
entryP0.destroy()
entryP2 = tkinter.Entry(root0)
entryP2.place(x=550, y=120, width=180, height=180)
give_label_with_picture(entryP2, image='./preview_0.png').pack()
else:
lbR = tkinter.Label(root0, text='你 T M D 在 逗 我 吗 ?')
lbR.place(x=170, y=180, width=250, height=25)
entryP0.destroy()
entryP2 = tkinter.Entry(root0)
entryP2.place(x=550, y=120, width=180, height=180)
give_label_with_picture(entryP2, image='./portraits_1.png').pack()
buttonStart = tkinter.Button(root0, text='开始', command=buttonClick)
buttonStart.place(x=590, y=80, width=75, height=25)
root0.bind('<Return>', lambda event=None: buttonStart.invoke())
tkinter.mainloop()
if __name__ == '__main__':
starta()