皮在养 2022-05-13 23:08 采纳率: 100%
浏览 76
已结题

tkinter实现两个功能,复选框和使系统智能化点

main.py

import tkinter as tk
from MinaPage import MianPage
from change import Change
from login import Login
from tkinter import messagebox
from db import db

class main1:
def init(self, master):
self.root = master
self.root.geometry('500x360')
self.root.title('智能康复检测监督系统')
self.page = tk.Frame(root)
self.page.pack()

    tk.Label(self.page).grid(row=0, column=0)
    tk.Label(self.page, text='***************************************').grid(row=1, column=1)
    tk.Label(self.page, text='*  欢迎进入智能康复检测监督系统  *').grid(row=2, column=1)
    tk.Label(self.page, text='***************************************').grid(row=3, column=1)
    tk.Button(self.page, text='用户', command=self.log).grid(row=6, pady=10, column=0)
    tk.Button(self.page, text='管理员', command=self.root.destroy).grid(row=6, column=2)


def log(self):
        self.page.destroy()
        MianPage(self.root)

def logi(self):
    self.page.destroy()
    Login(self.root)

if name== 'main':
root = tk.Tk()
main1(master=root)
root.mainloop()

root2 = tk.Tk()
root2.geometry('300x160')
root2.title("登录界面")

username = tk.StringVar()
password = tk.StringVar()

lab_1 = tk.Label(root2, text="欢迎欢迎", height=3)
lab_1.grid(row=0, column=0, sticky="w" + "e")
lab_2 = tk.Label(root2, text="账户:")
lab_3 = tk.Entry(root2, textvariable=username)
lab_4 = tk.Label(root2, text="密码:")
lab_5 = tk.Entry(root2, textvariable=password)
lab_1.grid(row=1, column=1)
lab_2.grid(row=2, column=1)
lab_3.grid(row=2, column=2)
lab_4.grid(row=3, column=1)
lab_5.grid(row=3, column=2)

def login():
    name = username.get()
    pwd = password.get()
    flag, message = db.check_login(name, pwd)
    if flag:
        for widget in root2.winfo_children():
            widget.destroy()
        Change(root2)

    else:
        messagebox.showwarning(title='警告', message=message)

but_dr = tk.Button(root2, text="登陆", command=login)
but_dr.grid(row=4, column=1)

root2.mainloop()

MinaPage.py

import tkinter as tk
from views import AboutFrame, InsertFrame

class MianPage:
def init(self, master: tk.Tk):
self.root = master
self.root.title('智能康复检查监督系统 v0.0.1')
self.root.geometry('600x400')
self.create_page()

def create_page(self):
    self.about_frame = AboutFrame(self.root)
    self.insert_frame = InsertFrame(self.root)


    menubar = tk.Menu(self.root)
    menubar.add_command(label='录入', command=self.show_insert)
    menubar.add_command(label='关于', command=self.show_about)
    menubar.add_command(label='退出', command=quit)
    self.root['menu'] = menubar


def show_insert(self):
    self.insert_frame.pack()
    self.about_frame.pack_forget()

def show_about(self):
    self.about_frame.pack()
    self.insert_frame.pack_forget()

if name == 'main':
root = tk.Tk()
MianPage(master=root)
root.mainloop()

views.py

import tkinter as tk
from tkinter import messagebox
from db import db

class AboutFrame(tk.Frame):
def init(self, root):
super().init(root)
tk.Label(self, text='关于作品:本作品由tkinter制作').pack()
tk.Label(self, text='关于作者:黄龙').pack()

class InsertFrame(tk.Frame):
def init(self, root):
super().init(root)
li = tk.StringVar()
pre1 = tk.StringVar()
pre2 = tk.StringVar()
su = tk.StringVar()
he = tk.StringVar()

    tk.Label(self, text='血脂中甘油三酯(mmol/L):').grid(row=4, pady=10, column=1)
    tk.Entry(self, textvariable=li).grid(row=4, column=2)
    tk.Label(self, text='舒张压(mmHg):').grid(row=5, pady=10, column=1)
    tk.Entry(self, textvariable=pre1).grid(row=5, column=2)
    tk.Label(self, text='收缩压(mmHg):').grid(row=6, pady=10, column=1)
    tk.Entry(self, textvariable=pre2).grid(row=6, column=2)
    tk.Label(self, text='血糖(mmol/L):').grid(row=7, pady=10, column=1)
    tk.Entry(self, textvariable=su).grid(row=7, column=2)
    tk.Label(self, text='心率(次/分):').grid(row=8, pady=10, column=1)
    tk.Entry(self, textvariable=he).grid(row=8, column=2)

    def loe():
        self.__init__(root)
        lii = str(li.get())
        pre11 = str(pre1.get())
        pre22 = str(pre2.get())
        suu = str(su.get())
        hee = str(he.get())
        flag, message = db.all(lii, pre11, pre22, suu, hee)
        if flag:
            print('登录成功')
            messagebox.showwarning(title='结果', message=message)
        else:
            messagebox.showwarning(title='警告', message=message)


    tk.Button(self, text='提交', command=loe).grid(row=15, column=2)

class ChangeFrame(tk.Frame):
def init(self, root):
super().init(root)
self.li = tk.StringVar()
self.pre1 = tk.StringVar()
self.pre2 = tk.StringVar()
self.su = tk.StringVar()
self.he = tk.StringVar()
self.create_page()

def create_page(self):
    tk.Label(self, text='请填写修改的数值').grid(row=1, column=1)
    tk.Label(self, text='血脂中甘油三酯(mmol/L):').grid(row=4, pady=10, column=1)
    tk.Entry(self, textvariable=self.li).grid(row=4, column=2)
    tk.Label(self, text='舒张压(mmHg):').grid(row=5, pady=10, column=1)
    tk.Entry(self, textvariable=self.pre1).grid(row=5, column=2)
    tk.Label(self, text='收缩压(mmHg):').grid(row=6, pady=10, column=1)
    tk.Entry(self, textvariable=self.pre2).grid(row=6, column=2)
    tk.Label(self, text='血糖(mmol/L):').grid(row=7, pady=10, column=1)
    tk.Entry(self, textvariable=self.su).grid(row=7, column=2)
    tk.Label(self, text='心率(次/分):').grid(row=8, pady=10, column=1)
    tk.Entry(self, textvariable=self.he).grid(row=8, column=2)
    tk.Button(self, text='修改', command=self.recode_info).grid(row=15, column=2)
    tk.Label(self).grid(row=16, column=2)

def recode_info(self):
    stu = {"li": self.li.get(), "pre1": self.pre1.get(), "pre2": self.pre2.get(), "su": self.su.get(), "he": self.he.get()}
    print(stu)
    print(type(self.li))
    db.write_json_data([stu])
    messagebox.showwarning(title='提示', message='修改成功')

db.py

import json
import winsound

class MysqlDatabases:
def init(self):
self.users = json.loads(open('users.json', mode='r', encoding='utf-8').read())
self.sj = json.loads(open('sj.json', mode='r', encoding='utf-8').read())

def check_login(self, username, password):
    for user in self.users:
        if username == user['username']:
            if password == user['password']:
                return True, '登录成功'
            else:
                return False, '登录失败,密码不存在'
    return False, '登录失败,用户不存在'

def all(self, lii, pre11, pre22, suu, hee):
    for be in self.sj:
        if float(lii) < float(be['li']):
            if float(pre11) < float(be['pre1']):
                if float(pre22) < float(be['pre2']):
                    if float(suu) <= float(be['su']):
                        if float(be['he']) >= float(hee):
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            return True, '您的身体健康'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和'
                    else:
                        if float(be['he']) >= float(hee):
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和 ' \
                                         '您的的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动'
                else:
                    if suu <= be['su']:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'
                    else:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
                                         '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'

            else:
                if pre22 >= be['pre2']:
                    if suu <= be['su']:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                    else:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                else:
                    if suu <= be['su']:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'
                    else:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
                                         '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠'

        else:
            if pre11 < be['pre1']:
                if pre22 < be['pre2']:
                    if suu <= be['su']:
                        if hee <= be['he']:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                    else:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                else:
                    if suu <= be['su']:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                    else:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠 ' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
            else:
                if pre22 < be['pre2']:
                    if suu <= be['su']:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                    else:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                else:
                    if suu <= be['su']:
                        if 100 >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                    else:
                        if be['he'] >= hee:
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您其他指标正常,但是处于亚健康,请日常根据建议调整'
                        else:
                            print('您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和')
                            print('您其他指标正常,但是处于亚健康,请日常根据建议调整')
                            duration = 1000  # millisecond
                            freq = 440  # Hz
                            winsound.Beep(freq, duration)
                            return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和' \
                                         '您的血糖过高,建议您调整饮食结构,多吃蔬菜和全麦食物、适量减少糖和碳水化合物的摄入、每周至少5天,每天至少30分钟中高强度的运动' \
                                         '您的高压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的低压过高,建议您减低食盐摄入量、积极锻炼、控制体重、不吸烟、不饮或限制饮酒、减轻压力和保证睡眠' \
                                         '您的血脂过高,建议您少吃红肉、高胆固醇食物、多吃高纤维食物并保证运动量 ' \
                                         '请重视您的身体,每天按时检查'
    return False, '输入错误'

def get_json_data(self):
    with open('sj.json', 'rb') as f:
        params = json.loads(f)
        for i in range(len(params)):
            params[i]['score'] = params[i]['score']*10
        print("params", params)
        dict = params
    f.close()
    return dict

def write_json_data(self, dict):
    with open('sj.json', 'w') as r:
        json.dump(dict, r)
    r.close()

db = MysqlDatabases()
if name == 'main':
print(db.check_login('abc', '111'))
print(db.all('1.6', '70', '120', '5', '70'))

change.py

import tkinter as tk
from views import ChangeFrame

class Change:
def init(self, master: tk.Tk):
self.root = master
self.root.title('智能康复检查监督系统 v0.0.1')
self.root.geometry('600x400')
self.create_page()

def create_page(self):
    self.change_frame = ChangeFrame(self.root)

    menubar = tk.Menu(self.root)
    menubar.add_command(label='修改', command=self.show_change)
    menubar.add_command(label='退出', command=quit)
    self.root['menu'] = menubar


def show_change(self):
    self.change_frame.pack()

if name == 'main':
root = tk.Tk()
Change(master=root)
root.mainloop()

login.py

import tkinter as tk

class Login:
def init(self,master:tk.Tk):
self.root = master
self.root.title('智能康复检查监督系统 v0.0.1')
self.root.geometry('600x400')

    self.page = tk.Frame(root)
    self.page.pack()

    tk.Label(self.page).grid(row=0, column=0)
    tk.Label(self.page, text='***************************************').grid(row=1, column=1)
    tk.Label(self.page, text='*  欢迎进入智能康复检测监督系统  *').grid(row=2, column=1)
    tk.Label(self.page, text='***************************************').grid(row=3, column=1)
    tk.Button(self.page, text='用户', command=self.log).grid(row=4, pady=10, column=1)
    tk.Button(self.page, text='管理员', command=self.logi).grid(row=4, column=2)

if name == 'main':
root = tk.Tk()
Login(master=root)
root.mainloop()

sj.json

[{"li": "1.7", "pre1": "100", "pre2": "140", "su": "7", "he": "100"}]

users.json

[{"username": "123", "password": "123"}, {"username": "abc", "password": "111"}]

上面是全部代码和对应文件名(加粗字体 其实是有下划线如_name_ == '_main_‘,不知怎么显示不出来)

需要再实现两个功能,复选框怎么实现,调试很久都报错,请教大家
(1,在用户界面里的录入界面如图所示再添加一个复选框,内容为 平静/剧烈运动
选平静对血脂,血压等判断不改变,如选剧烈运动对db.py的all方法判断血压be['pre1']+20,be['pre2']+20和血糖be['su']+1,心率be['he']+30,血脂li不变)
(2,用户录入三次数据及以上会取录入的平均值作为db.py的all方法判断的依据,会把平均值替换到sj.json里
[{"li": "1.7", "pre1": "100", "pre2": "140", "su": "7", "he": "100"}]

img

  • 写回答

2条回答 默认 最新

  • 溪风沐雪 2022-05-13 23:40
    关注

    已经搞这么复杂了吗?先学习一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月22日
  • 已采纳回答 5月14日
  • 创建了问题 5月13日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改