1. (填空题) 改正以下代码中的错误,使得该python程序的运行效果是:显示一个高为400宽为300的登录窗口,用户可设置用户账号和密码,输入密码时显示为“*”,点击“确定”按钮时,窗口关闭。 from tkinter import Tk,Label,Entry,Button #***********************found****************************# def Start_win(): #***********************found****************************# def _init_(self): self.rt=Tk() #***********************found****************************# self.rt.geometry("300*400") self.rt.title("系统登录") self.rt.resizable(width=0,height=0) #窗口禁止改变大小 Label(self.rt,text="用户账号:").place(x=30,y=30) self.tuser=Entry(self.rt,width=16) self.tuser.place(x=100,y=30) Label(self.rt,text="登录密码:").place(x=30,y=80) self.tpwd=Entry(self.rt,width=16,show="*") self.tpwd.place(x=100,y=80) #***********************found****************************# Button(self.rt,text="确定",width=6,command=cmdtj).place(x=230,y=120) self.rt.mainloop() def cmdtj(self): self.user=self.tuser.get()#得到用户账号 self.pwd=self.tpwd.get()#得到登录密码 #***********************found****************************# rt.destroy() users={"S1078":"p23W9u","S9258":"39uP02","T3600":"T41p83"} lw=Start_win() if lw.tuser in users: if users[lw.user]==lw.pwd:print("Passed") else:print("ERROR") else:print("ERROR")
时间: 2023-07-06 09:39:41 浏览: 114
以下是修改后的代码:
```python
from tkinter import Tk, Label, Entry, Button
class Start_win:
def __init__(self):
self.rt = Tk()
self.rt.geometry("300x400") # 修改此处
self.rt.title("系统登录")
self.rt.resizable(width=0, height=0) # 窗口禁止改变大小
Label(self.rt, text="用户账号:").place(x=30, y=30)
self.tuser = Entry(self.rt, width=16)
self.tuser.place(x=100, y=30)
Label(self.rt, text="登录密码:").place(x=30, y=80)
self.tpwd = Entry(self.rt, width=16, show="*")
self.tpwd.place(x=100, y=80)
Button(self.rt, text="确定", width=6, command=self.cmdtj).place(x=230, y=120)
def cmdtj(self):
self.user = self.tuser.get() # 得到用户账号
self.pwd = self.tpwd.get() # 得到登录密码
self.rt.destroy() # 修改此处
users = {"S1078": "p23W9u", "S9258": "39uP02", "T3600": "T41p83"}
lw = Start_win()
lw.rt.mainloop()
if lw.user in users:
if users[lw.user] == lw.pwd:
print("Passed")
else:
print("ERROR")
else:
print("ERROR")
```
主要的修改包括:
1. 修改 `Start_win` 类的定义方式,将 `__init__` 方法中的 `self` 参数补充上。
2. 修改窗口大小的设置,将 `300*400` 改为 `300x400`。
3. 修改 `cmdtj` 方法中的关闭窗口操作,将 `rt.destroy()` 改为 `self.rt.destroy()`。
4. 将整个程序的执行放在 `Start_win` 类的定义之后,使得窗口会先被创建出来再执行后续的逻辑。
阅读全文