python实现防疫自测窗体--大学生作业

import tkinter as tk
from tkinter import ttk
import datetime,time
import tkinter.messagebox as tkm
windows= tk.Tk()
windows.geometry('800x600+10+10')  
windows.title("张芸溪的防疫知识窗体")


day_now=datetime.date.today()
data=tk.Label(windows,font=('楷体',15),text=day_now,fg="blue")
data.place(x = 90,y = 20)
time_now=time.strftime("%H:%M:%S")
time=tk.Label(windows,font=('楷体',15),text=time_now,fg="blue")
time.place(x = 550,y = 20)
name=tk.Label(windows,text='姓名:',font=('楷体',20))
school_num=tk.Label(windows,text='学号:',font=('楷体',20))
xb=tk.Label(windows,text='性别:',font=('楷体',20))
name.place(x = 20,y = 60)
school_num.place(x = 270,y = 60)
xb.place(x = 520,y = 60)
name_enter=tk.Entry(windows,font=('楷体',20))
school_num_enter=tk.Entry(windows,font=('楷体',20))
def xbxc_h():#性别选择函数
	global xb_enter
	xb_enter= ttk.Combobox(windows)
	xb_enter['value'] = ('男','女')
	xb_enter.configure(state="readonly")
	xb_enter.place(width=50, height=30,x = 590,y = 64)

name_enter.place(width=150, height=30,x = 90,y = 64)
school_num_enter.place(width=150, height=30,x = 340,y = 64)
xbxc_h()#性别选择函数




bdmc=tk.Label(windows,font=('楷体',15),text='此次新冠肺炎的正式名称:')
bdmc.place(x = 20,y = 110)
xgfy_chioce_name="MERS-CoV"#默认选择
def xgfy_name():#新冠肺炎选择结果
	global xgfy_chioce_name
	xgfy_chioce_name=ButtonList.get()
	
def xgfymc_h():#新冠肺炎名称选择
	global ButtonList
	ButtonList = tk.StringVar() 
	r1 = tk.Radiobutton(windows, variable=ButtonList, value="MERS-CoV", text="MERS-CoV",font=('楷体',15),command=xgfy_name)
	r2 = tk.Radiobutton(windows, variable=ButtonList, value="2019-nCoV", text="2019-nCoV",font=('楷体',15),command=xgfy_name)
	r3 = tk.Radiobutton(windows, variable=ButtonList, value="COVID-19", text="COVID-19",font=('楷体',15),command=xgfy_name)
	ButtonList.set("MERS-CoV")
	r1.place(x = 20,y = 140)
	r2.place(x = 300,y = 140)
	r3.place(x = 580,y = 140)
xgfymc_h()#新冠肺炎名称选择
bdmc=tk.Label(windows,font=('楷体',15),text='防疫专用术语--"三件套"指的是:')
bdmc.place(x = 20,y = 180)





xgsjt=[]
def xgfy_sgt(text):#新冠肺炎三件套
	global xgsjt
	print('执行前数量',len(xgsjt))

	

	if text in xgsjt:
		xgsjt.remove(text)

	elif len(xgsjt)==3:
		xgsjt.append('&&')
		xgsjt.append(text)


	else:
		xgsjt.append(text)


	if len(xgsjt)==4:
		try:
			print('执行中')
			xgsjt.remove('&&')
			print('成功')
		except:
			pass
	print('执行后数量',len(xgsjt))
	print(xgsjt)





def sgt_h():#三件套组件
	global x,y,xgsjt
	x=20
	y=200
	sgts = ['牢记佩戴口罩','保持社交距离','注意个人卫生','口罩还要戴','社交距离还要留','喷嚏咳嗽还要遮','双手还要经常洗','窗户还要尽量开']
	for sgt in sgts:  #用for循环的方式实现多按钮显
	    if x>=600:
	        y+=30
	        x=20
	    t = tk.Checkbutton(windows,text =sgt,font=('楷体',16),command=lambda arg=sgt: xgfy_sgt(arg))
	    t.place(x=x,y=y)
	    x+=250



hkfs=60#默认分数
def fs(num):#滑块分数
	global hkfs
	hkfs=num
def hkpf_h():#滑块组件

	s1 = tk.Scale(windows, from_=60, to=100,orient=tk.HORIZONTAL,tickinterval=5,length=400,font=('楷体',13),command=fs)
	s1.place(x=170,y=y+70)

def cz_h():
    global xgsjt,xgfy_chioce_name,hkfs
    sgt_h()#三件套组件
    hkpf_h()#滑块组件
    xgfymc_h()#新冠肺炎名称选择
    xbxc_h()#性别选择函数
    xgsjt=[]#重置防疫三件套选择结果
    xgfy_chioce_name="MERS-CoV"#默认选择
    hkfs=60#默认分数
    name_enter.delete(0, 'end')
    school_num_enter.delete(0, 'end')
    try:
    	see_str_show.place_forget()
    except:
    	pass
def sure_h():
    global see_str_show
    name_user=name_enter.get()
    school_xh=school_num_enter.get()

    if xb_enter.get()=='':
        tkm.askyesno(title = '错误提示',message='数据不全,请输入完整后重试')
    elif name_user=='':
        tkm.askyesno(title = '错误提示',message='数据不全,请输入完整后重试')
    elif school_xh=='':
        tkm.askyesno(title = '错误提示',message='数据不全,请输入完整后重试')
    else:
        result = tkm.askokcancel(title = '提交确认',message='{}{},确认提交?'.format(name_user,school_xh))
        if result==True:
            if xgsjt==[]:
                fy='我不知道防疫三件套的具体内容'


            else:

                fy='我认为防疫"三件套"指的是:{}'.format(str(xgsjt).replace('[','').replace(']','').replace("'",'').replace('&&','\n'))
			
            see_str='我是{}生,名字是{},学号为{}\n{}\n此次新冠肺炎的正式名称是{}\n我为自己打{}分'.format(xb_enter.get(),name_user,school_xh,fy,xgfy_chioce_name,hkfs)
            try:
                see_str_show.place_forget()
            except:
            	pass
            see_str_show=tk.Label(windows,font=('楷体',15),justify="left",text=see_str)
            see_str_show.place(x=70,y=y+200)
sgt_h()#三件套组件
hkpf_h()#滑块组件

pf=tk.Label(windows,font=('楷体',20),text='请拖动滑块,给自己平时的防疫行为打分:')
pf.place(x = 120,y = y+40)

cz = tk.Button(windows, text ="重置", command = cz_h,font=('楷体',15))
sure=tk.Button(windows, text ="确定", command = sure_h,font=('楷体',15))
cz.place(x=300,y=y+150)
sure.place(x=400,y=y+150)

windows.mainloop() 

无图无真相
附图:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值