登陆界面源码
应粉丝要求上源码# -*- coding=utf-8 -*- # @Time : 2022/3/29 17:00 # @Author :zgz # @File : login.py # @Software : PyCharm from tkinter import * from tkinter import messagebox from PIL import ImageTk from PIL import Image import pickle def main(): global root root = Tk() x = int(root.winfo_screenwidth() / 2 - root.winfo_reqwidth() / 2) y = int(root.winfo_screenheight() / 2 - root.winfo_reqheight() / 2) root.geometry(f"400x300+{x - 100}+{y - 70}") root.title("交易系统登录") # root.iconbitmap("logo.ico") root.resizable(False, False) # 不允许改变窗口大小 fr1 = Frame(root) fr1.pack() img1 = get_img(filename="zf01.jpg", width=400, height=150) # 自己找一张图片 canvas = Canvas(fr1, width=400, height=150, bg="lightblue", highlightthickness=0) canvas.create_image(200, 0, image=img1, anchor="n") canvas.create_text(200, 48, text="欢迎使用股票自动交易系统", fill="red", font=("方正粗黑宋简体", 13)) canvas.pack() fr2 = Frame(root) fr2.pack(pady=10) # 用户名 Lab_1 = Label(fr2, text="用 户 名:", font=("Arial", 10)) Lab_1.grid(row=0, column=0, padx=(0, 0), pady=10) # 0行0列 var_usr_name = StringVar() entry_usr_name = Entry(fr2, textvariable=var_usr_name, font=("Arial", 10)) entry_usr_name.grid(row=0, column=1, padx=(20, 0), pady=8) # 0行1列 entry_usr_name.focus_set() # 获得焦点 # 用户密码 Lab_2 = Label(fr2, text="登录密码:", font=("Arial", 10)) Lab_2.grid(row=1, column=0, padx=(0, 0), pady=8) # 1行0列 var_usr_pwd = StringVar() entry_usr_pwd = Entry(fr2, textvariable=var_usr_pwd, font=("Arial", 10), show="*") entry_usr_pwd.grid(row=1, column=1, padx=(20, 0), pady=8) # 1行1列 # 定义用户登录功能 def usr_login(): usr_name = var_usr_name.get() usr_pwd = var_usr_pwd.get() if usr_name == "" or usr_pwd == "": messagebox.showerror("Error", "用户名,密码不能空! 请 重 新 输 入!") return try: with open("usrs_info.pickle", "rb") as usr_file: usrs_info = pickle.load(usr_file) except FileNotFoundError: with open("usrs_info.pickle", "wb") as usr_file: usrs_info = {"admin": "admin"} pickle.dump(usrs_info, usr_file) usr_file.close() # 必须先关闭 if usr_name in usrs_info: if usr_pwd == usrs_info[usr_name]: fr1.destroy() fr2.destroy() Home(master=root) # 主窗体模块的界面加载 else: messagebox.showerror("错误", "密 码 错 误! 请重新输入") else: # 如果发现用户名不存在 is_sign_up = messagebox.askyesno("欢迎光临! ", "您还没有注册. 马上注册?") # 提示需不需要注册新用户 if is_sign_up: usr_sign_up() # 定义用户注册功能 def usr_sign_up(): infodisplay() def sign_to(): np = new_pwd.get() npf = new_pwd_confirm.get() nn = new_name.get() if np == "" or nn == "": messagebox.showerror("Error", "用户名,密码不能空! 请 重 新 输 入 !") return # 这里是打开我们记录数据的文件,将注册信息读出 try: with open("usrs_info.pickle", "rb") as usr_file: exist_usr_info = pickle.load(usr_file) except FileNotFoundError: with open("usrs_info.pickle", "wb") as usr_file: usrs_info = {"admin": "admin"} pickle.dump(usrs_info, usr_file) exist_usr_info = "admin" usr_file.close() if np != npf: messagebox.showerror("Error", "两次密码必须相同!") elif nn in exist_usr_info: messagebox.showerror("Error", "用户名已注册!") else: exist_usr_info[nn] = np with open("usrs_info.pickle", "wb") as usr_file: pickle.dump(exist_usr_info, usr_file) messagebox.showinfo("Welcome", "您已注册成功!") # window_sign_up.destroy() close_handler() global window_sign_up window_sign_up = Toplevel() window_sign_up.transient(root) window_sign_up.attributes("-topmost", 1) window_sign_up.protocol("WM_DELETE_WINDOW", close_handler) window_sign_up.geometry(f"300x200+{x + 320}+{y + 30}") window_sign_up.title("用户注册") window_sign_up.attributes("-toolwindow", 1) new_name = StringVar() # 将输入的注册名赋值给变量 Label(window_sign_up, text="用 户 名:").place(x=15, y=20) entry_new_name = Entry(window_sign_up, textvariable=new_name) entry_new_name.place(x=100, y=20) entry_new_name.focus_set() # 获得焦点 new_pwd = StringVar() Label(window_sign_up, text="密 码:").place(x=15, y=60) usr_pwd = Entry(window_sign_up, textvariable=new_pwd, show="*") usr_pwd.place(x=100, y=60) new_pwd_confirm = StringVar() Label(window_sign_up, text="密码确认:").place(x=15, y=100) usr_pwd_confirm = Entry(window_sign_up, textvariable=new_pwd_confirm, show="*") usr_pwd_confirm.place(x=100, y=100) btn_sign_up1 = Button(window_sign_up, text="注册", command=sign_to) btn_sign_up1.place(x=180, y=150) btn_login = Button(fr2, text="登录", command=usr_login) btn_login.grid(row=2, column=0, padx=(40, 0), pady=8) # 2行0列 btn_sign_up = Button(fr2, text="注册", command=usr_sign_up) btn_sign_up.grid(row=2, column=1, padx=(20, 0), pady=8) # 2行1列 root.mainloop() def get_img(filename, width, height): im = Image.open(filename).resize((width, height)) im = ImageTk.PhotoImage(im) return im def close_handler(): root.attributes("-disabled", 0) window_sign_up.destroy() def infodisplay(): root.attributes("-disabled", 1) class Home(Frame): """主窗口""" def __init__(self, master=None): super().__init__(master) # 调用父类的初始化方法 self.root = master self.root.title("股票自动交易系统") x = int(self.root.winfo_screenwidth() / 2 - self.root.winfo_reqwidth() / 2) y = int(self.root.winfo_screenheight() / 2 - self.root.winfo_reqheight() / 2) self.root.geometry(f"1080x600+{x - 400}+{y - 220}") self.root.resizable(False, False) # 不允许改变窗口大小 self.createWidget() def createWidget(self): """创建组件""" stus_str_var = StringVar() stus_str_var.set("开 始 您 的 创 作 吧!") stus_label = Label(self.root, textvariable=stus_str_var, fg="red", font=("Arial", 25), anchor="center") stus_label.pack(pady=100) if __name__ == "__main__": root = None window_sign_up = None main()
工程与艺术的结合工程师的世界并不一定都是急速狂野,同样也可以做到精致婉约。下面就是今年参加智能车竞赛的同学根据车模功能需要,精心打磨制作了车模上的传感器机械支架堆栈控制电路板内藏式电源模块等。整车
蓝牙耳机怎么挑选?段琪总结口碑最好的国产蓝牙耳机苹果发布AirPods后,涉足蓝牙耳机领域的品牌越来越多,蓝牙耳机品牌变多,价格跨度也变大,让大家不知道蓝牙耳机怎么挑选。段琪从大学就开始加入各种内测群,参与网站众测,评测过很多数
实至名归!科龙空调斩获中国空调行业创新影响力品牌等3项大奖2021年8月27日,由中国家用电器协会指导京东家电独家渠道合作的,中国家电网主办的新空气新碳索新红利20212022中国空调行业高峰论坛在京举行。论坛上,中国家用电器协会执行理事
这才是真实力,比亚迪重回全球新能源单月品牌销量榜首比亚迪自今年6月份重返销量冠军之后,便一路高歌,在整个全球新能源市场中引领各大品牌走向新汽车新时代。从目前EVsales公布的最新数据来看,全球新能源乘用车销量中,比亚迪在7月份总
电视盒子怎么选?岩选数码力荐五大老少易用畅销盒子最近不少粉丝和网友留言咨询道有没有适合家里老人小孩使用又耐用的网络电视盒子,所以这一期岩选数码打算跟大家聊聊关于网络电视盒子怎么选。虽说如今主流的电视盒子品牌也不少,无论质量和售后
平价蓝牙耳机什么牌子好?十年老烧分享五大超高性价比蓝牙耳机作为一名十年老烧,李立深知蓝牙耳机虽好,却不是人人都适用最好用的蓝牙耳机。之所以这么说,是因为有些大牌蓝牙耳机着实是太贵,比如大家熟知的Airpods,基本都在2000元左右。而几
现代社会的三重矛盾人太把自己当个人了简介本文收录了储殷教授在昨天视频节目现代社会的三重矛盾人太把自己当个人了1中所谈到的现代社会的三重矛盾。利用他的观点也许可以让我们对于现在生活中的很多令人焦虑的现象看清楚其背后的所
有趣的物理演示实验简介在头条上看到人们制作的有趣的物理演示实验,其中的原理大体可以使用中学物理知识进行解释。简单的演示效果生动。还是被其中带有磁场磁铁对电弧的影响最为生动。关键词磁场,电弧,燃烧在头
磁铁对于小型电机的影响简介学生根据实际碰到的问题提出了一个问题,在小型直流电机旁增加磁铁会使得电机输出扭矩减少。甚至等磁铁去除之后,电机的性能依然降低。这个问题之前并没有注意到,本文通过实验测试了强磁铁
比亚迪开启全球版图全球新能源单月销量超特斯拉登顶榜首近几年,随着新能源市场的火爆,中国的车企品牌迎来了高速发展时期,许多品牌都在积蓄实力,准备在不久后的新能源市场中大展身手。其中,作为我国国产汽车品牌的领军品牌比亚迪,以出色的销售成
网络机顶盒什么牌子好?熊大实测泰捷小米天猫魔盒哪款好?hello,大家好,这里是专注测评数码产品爱搞机的熊大。作为一枚数码博主,平时最喜欢的就是尝试各种新出的影视听设备,还参加了很多内测群,认识了不少志同道合的机友。最近看到很多朋友在