from tkinter import * from tkinter.messagebox import * root=Tk() root.title('登录界面') log_account=StringVar() log_pwd=StringVar() def bth_login(): if log_account.get()=='xxxx'and log_pwd.get()=='123': showinfo('提示信息','登录成功') else: showwarning('提示信息','用户名或密码输入有误') Label(root,text='请输入用户名和密码:').grid(row=1) Label(root,text='用户名:').grid(row=2) Entry(textvariable=log_account).grid(row=2,column=1) Label(root,text='密码:').grid(row=3) Entry(textvariable=log_pwd).grid(row=3,column=1) Button(text='登录',command=bth_login).grid(row=4,column=0) Button(root,text='退出',command=lambda:root.destroy).grid(row=4,column=1) root.mainloop() 这个代码要让让用户名和密码居中应该怎么改

时间: 2023-12-31 18:04:03 浏览: 32
可以使用Tkinter中的Frame来实现,将用户名和密码的Label和Entry放在一个Frame中,然后将这个Frame居中。修改后的代码如下: ``` from tkinter import * from tkinter.messagebox import * root = Tk() root.title('登录界面') log_account = StringVar() log_pwd = StringVar() def bth_login(): if log_account.get() == 'xxxx' and log_pwd.get() == '123': showinfo('提示信息', '登录成功') else: showwarning('提示信息', '用户名或密码输入有误') # 创建一个Frame并居中 frame = Frame(root) frame.pack(pady=50) Label(frame, text='请输入用户名和密码:').grid(row=1, columnspan=2) Label(frame, text='用户名:').grid(row=2, column=0) Entry(frame, textvariable=log_account).grid(row=2, column=1) Label(frame, text='密码:').grid(row=3, column=0) Entry(frame, textvariable=log_pwd).grid(row=3, column=1) Button(frame, text='登录', command=bth_login).grid(row=4, column=0, pady=10) Button(frame, text='退出', command=lambda:root.destroy).grid(row=4, column=1, pady=10) root.mainloop() ```

相关推荐

import tkinter import tkinter.messagebox def Button_Click(btn): btn_Label = tkinter.Entry(mainUI) btn_Label.insert(tkinter.END,btn) btn_Label.place(x=45,y=75,width=40,height=20) mainUI = tkinter.Tk() mainUI.title('计算器') mainUI.geometry('300x280') #输入数字的两个文本框 num1_Label = tkinter.Label(mainUI,text='number 1 :',justify=tkinter.LEFT,anchor='e') num1_Label.place(x=25,y=20,width=80,height=30) num2_Label = tkinter.Label(mainUI,text='number 2 :',justify=tkinter.LEFT,anchor='e') num2_Label.place(x=25,y=125,width=80,height=30) num1_Var = tkinter.StringVar(mainUI,value='') num2_Var = tkinter.StringVar(mainUI,value='') num1_Entry = tkinter.Entry(mainUI,width=100,textvariable=num1_Var) num1_Entry.place(x=110,y=25,width=140,height=20) num2_Entry = tkinter.Entry(mainUI,width=100,textvariable=num2_Var) num2_Entry.place(x=110,y=130,width=140,height=20) #创建加减乘除按钮及显示文本框 sum_Button = tkinter.Button(mainUI,text='+',command=lambda :Button_Click('+')) sum_Button.place(x=100,y=75,width=30,height=20) min_Button = tkinter.Button(mainUI,text='-',command=lambda :Button_Click('-')) min_Button.place(x=145,y=75,width=30,height=20) mul_Button = tkinter.Button(mainUI,text='x',command=lambda :Button_Click('x')) mul_Button.place(x=190,y=75,width=30,height=20) div_Button = tkinter.Button(mainUI,text='/',command=lambda :Button_Click('/')) div_Button.place(x=235,y=75,width=30,height=20) #创建结果框以及计算按钮 cal_Label = tkinter.Label(mainUI,text='result :',justify=tkinter.LEFT,anchor='e') cal_Label.place(x=25,y=175,width=80,height=20) cal_Entry = tkinter.Entry(mainUI) cal_Entry.place(x=110,y=175,width=80,height=20) cal_Button = tkinter.Button(mainUI,text='Calculate') cal_Button.place(x=110,y=225,width=80,height=20) mainUI.mainloop()完善此代码中Calculate按钮被按下后进行的计算及输出操作

class LoginWindow: def __init__(self, master): self.master = master self.master.title("Login Window") self.master.geometry("300x250") self.master.resizable(0, 0) self.username = tk.StringVar() self.password = tk.StringVar() tk.Label(self.master, text="賬號").grid(row=0, column=0, padx=5, pady=5) tk.Entry(self.master, textvariable=self.username).grid(row=0, column=1, padx=5, pady=5) tk.Label(self.master, text="密碼").grid(row=1, column=0, padx=5, pady=5) tk.Entry(self.master, textvariable=self.password, show="*").grid(row=1, column=1, padx=5, pady=5) tk.Button(self.master, text="確認", command=self.login).grid(row=2, column=0, columnspan=2, padx=5, pady=5) def login(self): if self.username.get() == "1" and self.password.get() == "1": self.master.destroy() root = tk.Tk() app = ExcelApp(root) root.mainloop() else: messagebox.showwarning("Invalid Credentials", "Username or password is incorrect.")class ExcelApp: def __init__(self, master): self.master = master master.title("Excel App") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height)) master.state('zoomed')#窗口最大化# 查询窗口 class QueryWindow: def __init__(self, master): self.master = master self.master.title("查詢窗口") # 获取屏幕的宽度和高度 screen_width = self.master.winfo_screenwidth() screen_height = self.master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 self.master.geometry("%dx%d" % (screen_width, screen_height)) self.master.state('zoomed') # 窗口最大化if __name__ == '__main__': root = tk.Tk() app = LoginWindow(root) root.mainloop()這個代碼中我有三個窗口,第一個銷毀后第三個就報return self.tk.call('wm', 'title', self._w, string) _tkinter.TclError: can't invoke "wm" command: application has been destroyed怎麽修改

#**********************************设计基本框架 import tkinter as tk import tkinter.messagebox win = tk.Tk() win.title("用户登录") win.geometry("250x130") #---------功能代码开始--------- #***********************************设计功能函数 #--设计功能函数-- #设置变量 var_Name = tk.StringVar() #设置变量为StringVar变量 var_Name.set(' ') #初始和重置时的清空 var_Pwd = tk.StringVar() var_Pwd.set(' ') #按钮处理函数 def login(): name = var_Name.get() #获取用户名 pwd = var_Pwd.get() #获取密码 if name=='admin' and pwd=='python@16': tk.messagebox.showinfo(title = '用户登录',message = '成功!') else: tk.messagebox.showinfo(title = '用户登录',message = '失败!') def cancle(): var_Name.set(' ') #清空用户名 var_Pwd.set(' ') #清空密码 def _quit(): win.quit() #**********************************设置提示标签 #--登录窗口各组件设计-- #设计2个提示标签 labname = tk.Label(win,text = "账号:",width = 80) labpwd = tk.Label(win,text = "密码:",width = 80) #设计2个输入框(textvariable为文本框的值,并关联变量var_Name) entname = tk.Entry(win,width = 100,textvariable = var_Name) entpwd = tk.Entry(win,width = 100,textvariable = var_Pwd) #设计3个按钮 but_Ok = tk.Button(win,text = "登录",command = login) but_Cancel = tk.Button(win,text = "重置",command = cancel) but_Quit = tk.Button(win,text = "退出",command = quit) #**********************************设计组件布局 labname.place(x=20,y=10,width=80,height=20) labpwd.place(x=20,y=40,width=80,height=20) entname.place(x=120,y=10,width=80,height=20) entpwd.place(x=120,y=40,width=80,height=20) but_Ok.place(x=130,y=80,width=50,height=20) but_Cancel.place(x=100,y=80,width=50,height=20) but_Quit.place(x=170,y=80,width=50,height=20) #---------功能代码结束--------- win.mainloop()

from tkinter import * import re import tkinter def hit_button(n): temp=contentVar.get() if temp.startswith('.'): temp='0'+temp if n in '0123456789': temp += n elif n=='清除': temp='' elif n=='=': try: temp=str(eval(temp)) except: root1.messagebox.showerror('错误','表达式有误') return elif n in oprators: if temp.endwish(operators): root1.messagebox.showerror('错误') return temp+=n contentVar.set(temp) #首页点击 def hit_me(): #计算器设计 root1=Tk() root1.geometry('300x500+500+100') #计算器大小不被改变 root1.resizable(False, False) root1.title('计算器') contentVar=tkinter.StringVar(root1,'') entry=Entry(root1,width=40,text=contentVar) #文本框设置为只读 entry['state'] = 'readonly' entry.pack() box1=['清除','='] box2=['7','8','9','+','4','5','6','-','1','2','3','*','sqrt','0','.', '/'] num=0 button1=tkinter.Button(root1,text=box1[0],command=hit_button('清除')) button2=tkinter.Button(root1,text=box1[1],command=hit_button(box1[2])) button1.place(x=20,y=30,width=100,height=30) button2.place(x=180,y=30,width=100,height=30) for i in range(4): for j in range(4): a=box2[num] num+=1 buttons=tkinter.Button(root1,text=a,command=hit_button(a)) buttons.place(x=20+j*70,y=80+i*30,width=50,height=20) operators = ('+','-','*','/','sqrt') #首页设计 root=tkinter.Tk() root.geometry('500x210+500+200') root.title('首页') photo=tkinter.PhotoImage(file=r"C:\Users\DELL\Desktop\Python\计算器\\欢迎图片.gif") tkinter.Label(root, image = photo).pack() x=tkinter.Button(root,text='开始计算吧',borderwidth=0,command=hit_me) x.place(x=180,y=10,width=150,height=50) tkinter.mainloop()

import pyautogui import time import tkinter as tk import subprocess # 用subprocess打开Internet Explorer subprocess.Popen('C:\Program Files\Internet Explorer\iexplore.exe') # 创建 GUI 界面 root = tk.Tk() root.title("选择账号") # 创建标签和选项 tk.Label(root, text="请选择账号:").grid(row=0, column=0, sticky=tk.W, padx=10, pady=10) options = [ ("马家益", "tb021 A123456"), ("王中豪", "tb121 A123456"), ("陈诗源", "tb058 A123456"), ("陈亮", "tb057 12345678"), ("张少芬", "tb017 A123456"), ("海玲", "tb020 A123456"), ("张科", "tb090 Tbyy123456@"), ("邱进东", "tb110 A123456"), ("黎福妮", "tb095 HD@123456"), ("任国军", "tb051 HD@123456"), ("叶穗君", "tb032 A*123456") ] var = tk.StringVar() var.set("tb057 12345678") # 设置默认值为陈亮选项 for i, option in enumerate(options): tk.Radiobutton(root, text=option[0], variable=var, value=option[1]).grid(row=i+1, column=0, sticky=tk.W, padx=10, pady=5) # 创建登录按钮的函数 def login(): # 获取选择的账号和密码 choice = var.get() if not choice: tk.messagebox.showwarning("警告", "请选择一个账号!") return username, password = choice.split() # 单击左键并输入账号 pyautogui.click(843, 440) pyautogui.typewrite(username) # 单击左键并输入密码,然后按回车键 time.sleep(0.01) # 等待界面加载 pyautogui.click(952, 495) pyautogui.typewrite(password) pyautogui.press('enter') root.destroy() # 创建登录按钮 tk.Button(root, text="登录", command=login).grid(row=len(options)+1, column=0, pady=10) root.mainloop() # 切换到登录界面 pyautogui.hotkey('alt', 'tab'),帮我修改一下代码

最新推荐

recommend-type

Python3.7+tkinter实现查询界面功能

`tkinter`是核心模块,用于构建用户界面,而`tkinter.messagebox`则提供弹出对话框的功能,可以用来提示用户信息或者确认操作。在这个例子中,还引入了`sqlite3`模块,它是Python的标准SQLite数据库接口,用于处理...
recommend-type

基于python的Tkinter编写登陆注册界面

使用`StringVar`对象与输入框关联,这样就可以通过`get()`方法获取用户输入的值。 `usr_login()`函数是登录逻辑的核心。它获取用户输入的账号和密码,然后与数据库中的数据进行比较。这里假设有一个名为`SQL`的模块...
recommend-type

在python tkinter界面中添加按钮的实例

在Python的图形用户界面开发中,`tkinter`是一个非常重要的库,它是Python标准库的一部分,用于构建桌面应用程序。在本实例中,我们将探讨如何在`tkinter`中添加按钮,以及通过按钮触发不同的功能。 首先,让我们...
recommend-type

Python学习笔记16 - 猜数字小游戏

猜数字小游戏的相关函数,与主程序搭配使用
recommend-type

BSC绩效考核指标汇总 (2).docx

BSC(Balanced Scorecard,平衡计分卡)是一种战略绩效管理系统,它将企业的绩效评估从传统的财务维度扩展到非财务领域,以提供更全面、深入的业绩衡量。在提供的文档中,BSC绩效考核指标主要分为两大类:财务类和客户类。 1. 财务类指标: - 部门费用的实际与预算比较:如项目研究开发费用、课题费用、招聘费用、培训费用和新产品研发费用,均通过实际支出与计划预算的百分比来衡量,这反映了部门在成本控制上的效率。 - 经营利润指标:如承保利润、赔付率和理赔统计,这些涉及保险公司的核心盈利能力和风险管理水平。 - 人力成本和保费收益:如人力成本与计划的比例,以及标准保费、附加佣金、续期推动费用等与预算的对比,评估业务运营和盈利能力。 - 财务效率:包括管理费用、销售费用和投资回报率,如净投资收益率、销售目标达成率等,反映公司的财务健康状况和经营效率。 2. 客户类指标: - 客户满意度:通过包装水平客户满意度调研,了解产品和服务的质量和客户体验。 - 市场表现:通过市场销售月报和市场份额,衡量公司在市场中的竞争地位和销售业绩。 - 服务指标:如新契约标保完成度、续保率和出租率,体现客户服务质量和客户忠诚度。 - 品牌和市场知名度:通过问卷调查、公众媒体反馈和总公司级评价来评估品牌影响力和市场认知度。 BSC绩效考核指标旨在确保企业的战略目标与财务和非财务目标的平衡,通过量化这些关键指标,帮助管理层做出决策,优化资源配置,并驱动组织的整体业绩提升。同时,这份指标汇总文档强调了财务稳健性和客户满意度的重要性,体现了现代企业对多维度绩效管理的重视。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【进阶】Flask中的会话与用户管理

![python网络编程合集](https://media.geeksforgeeks.org/wp-content/uploads/20201021201514/pythonrequests.PNG) # 2.1 用户注册和登录 ### 2.1.1 用户注册表单的设计和验证 用户注册表单是用户创建帐户的第一步,因此至关重要。它应该简单易用,同时收集必要的用户信息。 * **字段设计:**表单应包含必要的字段,如用户名、电子邮件和密码。 * **验证:**表单应验证字段的格式和有效性,例如电子邮件地址的格式和密码的强度。 * **错误处理:**表单应优雅地处理验证错误,并提供清晰的错误消
recommend-type

卷积神经网络实现手势识别程序

卷积神经网络(Convolutional Neural Network, CNN)在手势识别中是一种非常有效的机器学习模型。CNN特别适用于处理图像数据,因为它能够自动提取和学习局部特征,这对于像手势这样的空间模式识别非常重要。以下是使用CNN实现手势识别的基本步骤: 1. **输入数据准备**:首先,你需要收集或获取一组带有标签的手势图像,作为训练和测试数据集。 2. **数据预处理**:对图像进行标准化、裁剪、大小调整等操作,以便于网络输入。 3. **卷积层(Convolutional Layer)**:这是CNN的核心部分,通过一系列可学习的滤波器(卷积核)对输入图像进行卷积,以
recommend-type

BSC资料.pdf

"BSC资料.pdf" 战略地图是一种战略管理工具,它帮助企业将战略目标可视化,确保所有部门和员工的工作都与公司的整体战略方向保持一致。战略地图的核心内容包括四个相互关联的视角:财务、客户、内部流程和学习与成长。 1. **财务视角**:这是战略地图的最终目标,通常表现为股东价值的提升。例如,股东期望五年后的销售收入达到五亿元,而目前只有一亿元,那么四亿元的差距就是企业的总体目标。 2. **客户视角**:为了实现财务目标,需要明确客户价值主张。企业可以通过提供最低总成本、产品创新、全面解决方案或系统锁定等方式吸引和保留客户,以实现销售额的增长。 3. **内部流程视角**:确定关键流程以支持客户价值主张和财务目标的实现。主要流程可能包括运营管理、客户管理、创新和社会责任等,每个流程都需要有明确的短期、中期和长期目标。 4. **学习与成长视角**:评估和提升企业的人力资本、信息资本和组织资本,确保这些无形资产能够支持内部流程的优化和战略目标的达成。 绘制战略地图的六个步骤: 1. **确定股东价值差距**:识别与股东期望之间的差距。 2. **调整客户价值主张**:分析客户并调整策略以满足他们的需求。 3. **设定价值提升时间表**:规划各阶段的目标以逐步缩小差距。 4. **确定战略主题**:识别关键内部流程并设定目标。 5. **提升战略准备度**:评估并提升无形资产的战略准备度。 6. **制定行动方案**:根据战略地图制定具体行动计划,分配资源和预算。 战略地图的有效性主要取决于两个要素: 1. **KPI的数量及分布比例**:一个有效的战略地图通常包含20个左右的指标,且在四个视角之间有均衡的分布,如财务20%,客户20%,内部流程40%。 2. **KPI的性质比例**:指标应涵盖财务、客户、内部流程和学习与成长等各个方面,以全面反映组织的绩效。 战略地图不仅帮助管理层清晰传达战略意图,也使员工能更好地理解自己的工作如何对公司整体目标产生贡献,从而提高执行力和组织协同性。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依