首页 > 其他分享 >12.4每日总结

12.4每日总结

时间:2023-12-04 20:40:03浏览次数:30  
标签:总结 控件 admin 每日 height width window 12.4 self

今天完成了人机交互

C/S结构用户界面设计

【实验编号】

10003809547j   图形用户界面设计

【实验学时】

8学时

【实验环境】

l 所需硬件环境为微机;

l 所需软件环境为Microsoft Visual Studio 2013

【实验内容】

编写一整套Mis系统UI界面,Mis系统名称自拟,尽量运用到如下控件:

l 窗体

l 菜单

l 工具栏

l 状态栏控件

l 标签控件

l 按钮控件

l 文本框控件

l 单选按钮控件

l 复选框控件

l 列表框控件

l 组合框控件

l 分组框控件

l 面板控件

l 图片框控件

l 定时器控件

l 滚动条控件

l 月历控件

 

class StartPage:
    def __init__(self, parent_window, ImageTk=None):
        parent_window.destroy()  # 销毁子界面

        self.window = tk.Tk()  # 初始框的声明
        self.window.title('学生信息管理系统')
        self.window.geometry('500x500')  # 这里的乘是小x

        self.window.update_idletasks()  # 更新窗口的大小和位置信息
        screen_width = self.window.winfo_screenwidth()  # 获取屏幕宽度
        screen_height = self.window.winfo_screenheight()  # 获取屏幕高度
        window_width = self.window.winfo_width()  # 获取窗口宽度
        window_height = self.window.winfo_height()  # 获取窗口高度
        x = (screen_width - window_width) // 2  # 计算窗口左上角 x 坐标
        y = (screen_height - window_height) // 2  # 计算窗口左上角 y 坐标
        self.window.geometry("+{}+{}".format(x, y))  # 设置窗口位置



        label = Label(self.window, text="学生信息管理系统", font=("Verdana", 20))
        label.pack(pady=100)  # pady=100 界面的长度

        Button(self.window, text="管理员登陆", font=tkFont.Font(size=16), command=lambda: AdminPage(self.window), width=30,
               height=2,
               fg='white', bg='gray', activebackground='black', activeforeground='white').pack()
        Button(self.window, text="学生登陆", font=tkFont.Font(size=16), command=lambda: StudentPage(self.window), width=30,
               height=2, fg='white', bg='gray', activebackground='black', activeforeground='white').pack()
        Button(self.window, text="关于", font=tkFont.Font(size=16), command=lambda: AboutPage(self.window), width=30,
               height=2,
               fg='white', bg='gray', activebackground='black', activeforeground='white').pack()
        Button(self.window, text='退出系统', height=2, font=tkFont.Font(size=16), width=30, command=self.window.destroy,
               fg='white', bg='gray', activebackground='black', activeforeground='white').pack()


        self.window.mainloop()  # 主消息循环

  

 

class AdminPage:
    def __init__(self, parent_window):
        parent_window.destroy()  # 销毁主界面

        self.window = tk.Tk()  # 初始框的声明
        self.window.title('管理员登陆页面')
        self.window.geometry('500x500')  # 这里的乘是小x
        self.window.update_idletasks()  # 更新窗口的大小和位置信息
        screen_width = self.window.winfo_screenwidth()  # 获取屏幕宽度
        screen_height = self.window.winfo_screenheight()  # 获取屏幕高度
        window_width = self.window.winfo_width()  # 获取窗口宽度
        window_height = self.window.winfo_height()  # 获取窗口高度
        x = (screen_width - window_width) // 2  # 计算窗口左上角 x 坐标
        y = (screen_height - window_height) // 2  # 计算窗口左上角 y 坐标
        self.window.geometry("+{}+{}".format(x, y))  # 设置窗口位置

        label = tk.Label(self.window, text='管理员登陆', bg='green', font=('Verdana', 20), width=30, height=2)
        label.pack()

        Label(self.window, text='管理员账号:', font=tkFont.Font(size=14)).pack(pady=25)
        self.admin_username = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory')
        self.admin_username.pack()

        Label(self.window, text='管理员密码:', font=tkFont.Font(size=14)).pack(pady=25)
        self.admin_pass = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory', show='*')
        self.admin_pass.pack()

        Button(self.window, text="登陆", width=8, font=tkFont.Font(size=12), command=self.login).pack(pady=40)
        Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=12), command=self.back).pack()

        self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
        self.window.mainloop()  # 进入消息循环

    def login(self):
        print(str(self.admin_username.get()))
        print(str(self.admin_pass.get()))
        admin_pass = None

        # 数据库操作 查询管理员表
        db = pymysql.connect(
            host='localhost',
            user='root',
            password='123456',
            charset='utf8',
            database='student'
        ) # 打开数据库连接
        cursor = db.cursor()  # 使用cursor()方法获取操作游标
        sql = "SELECT * FROM admin_login_k WHERE admin_id = '%s'" % (self.admin_username.get())  # SQL 查询语句
        try:
            # 执行SQL语句
            cursor.execute(sql)
            # 获取所有记录列表
            results = cursor.fetchall()
            for row in results:
                admin_id = row[0]
                admin_pass = row[1]
                # 打印结果
                print("admin_id=%s,admin_pass=%s" % (admin_id, admin_pass))
        except:
            print("Error: unable to fecth data")
            messagebox.showinfo('警告!', '用户名或密码不正确!')
        db.close()  # 关闭数据库连接

        print("正在登陆管理员管理界面")
        print("self", self.admin_pass)
        print("local", admin_pass)

        if self.admin_pass.get() == admin_pass:
            AdminManage(self.window)  # 进入管理员操作界面
        else:
            messagebox.showinfo('警告!', '用户名或密码不正确!')

    def back(self):
        StartPage(self.window)  # 显示主窗口 销毁本窗口

  

标签:总结,控件,admin,每日,height,width,window,12.4,self
From: https://www.cnblogs.com/louwangshayu/p/17875876.html

相关文章

  • 每日总结12.4
    (1)使用IntelliJIDEA工具开发WordCount程序在Linux系统中安装IntelliJIDEA,然后使用IntelliJIDEA工具开发WordCount程序,并打包成JAR文件,提交到Flink中运行。 (2)数据流词频统计使用Linux系统自带的NC程序模拟生成数据流,不断产生单词并发送出去。编写Flink程序对NC程序发来的......
  • 12.04每日总结
          ......
  • 每日总结
    建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。1当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。[1]2当构造过程必须允许被构造的对象有不同表示时。在这样的设计模式中,有以下几个角色:1bui......
  • 12/4 今日总结
    #今日学习了进行了百度千帆大模型的prompt以及api调用,进行了模型的调试,生成了UI界面的图片importrequestsimportjsondefmain():url=""payload=json.dumps({"messages":[]})headers={'Cont......
  • 11.30 考试总结
    之前好像做过,不过当时我一个题没过,赛后也只改过了BCsolution做法是显然的,代码是不会的,数据结构是最菜的,凸包是看不懂的考虑直接前缀和,然后随便用前缀和拆一下柿子,发现对于每个p好像都是一个单点的函数最值查询(把k看成自变量),那么离线下来维护凸包大概就行了不过要注意有......
  • Linux后台跑程序的方法总结
    当使用ssh进行远程代码运行时,控制端电脑通常不能出现任何意外。然而,运行深度学习程序通常需要数小时或数天的时间,这意味着我们的IDE不能关闭。一旦出现非人为因素(如断电、断网或IDE卡死关闭),远程程序也会中断。因此,将程序灵活地运行在服务器上,不受控制端因素的影响至关重要。第一......
  • 2020云计算省赛总结
    前言:本文写于2020/11/2915:25分,写这篇文章的目的有三:1、对专科两年所学做个总结2、让未来能有机会参加竞赛的同学有个参考3、浮躁的社会,需要静下心来思考author:JackSparrowdate:2020/11/292020云计算省赛总结一、私有云部署运维1划分compute磁盘2配置网络、主机名3配置yum......
  • CAN总线入门总结
    1.简介CAN总线由德国BOSCH公司开发,最高速率可达到1Mbps。CAN的容错能力特别强,CAN控制器内建了强大的检错和处理机制。另外不同于传统的网络(比如USB或者以太网),CAN节点与节点之间不会传输大数据块,一帧CAN消息最多传输8字节用户数据,采用短数据包也可以使得系统获得更好的稳定性。CA......
  • Solution Set 2023.12.4
    来衡实了,感觉良好。[NOIP2023]三值逻辑一直以为是写假了,结果是写挂了,没有判自环的同时\(u,v\)输入反了。考虑对于每个变量的每个版本均开一个节点,那么赋值关系可以用有向边表示,可以发现最终得到的一定是若干外向基环树和若干外向树组成的图。且被\(\tt{T,F,U}\)三种指令......
  • 基于泰凌微的TLSR8355芯片的2.4G无线私有协议PCBA设计调试总结
    一前记经常做物联网的类的产品,TLSR8355凭借着它的射频距离远,功能强大等优点成为很多客户的首选。TLSR8355系列专用于2.4GHz射频系统芯片解决方案,如零售/物流、专用网络、Beacon应用程序、无线鼠标、无线USB加密狗等。它集成了2.4GHz射频系统片上应用开发所需的全系列片上外围......