Python错误提示,弄不明白应该如何改正。
本帖最后由 风子是我 于 2020-11-29 23:04 编辑我初学Python,用了论坛的wxPython可视化设计器做了个界面,想实现如下图的功能,点“确定”时的功能已经好了,点“取消”时不会。
运行界面应该如下:(下面是我把按钮“取消”注释掉后的界面)
不注释掉第二个按钮,出现如下提示:
代码如下:
# -*- coding:utf-8 -*-
import wx
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='用户登录', size=(400, 300),name='frame',style=541072960)
self.qdck = wx.Panel(self)
self.Centre()
self.an1 = wx.Button(self.qdck,size=(89, 32),pos=(90, 155),label='确定',name='button')
self.an1.Bind(wx.EVT_BUTTON,self.an1_anbdj)
self.bq1 = wx.StaticText(self.qdck,size=(195, 22),pos=(85, 16),label='请输入用户名和密码',name='staticText',style=2321)
self.bq2 = wx.StaticText(self.qdck,size=(90, 26),pos=(25, 57),label='用户名:',name='staticText',style=2321)
self.bq3 = wx.StaticText(self.qdck,size=(80, 24),pos=(33, 93),label='密 码:',name='staticText',style=2321)
self.bjk1 = wx.TextCtrl(self.qdck,size=(157, 25),pos=(114, 51),value='',name='text',style=0)
self.bjk2 = wx.TextCtrl(self.qdck,size=(157, 25),pos=(112, 88),value='',name='text',style=0)
self.an2 = wx.Button(self.qdck,size=(89, 32),pos=(186, 154),label='取消',name='button')
self.an2.Bind(wx.EVT_BUTTON,self.an2_anbdj)
def an1_anbdj(self,event):
""" 点击确定按钮,执行方法 """
message = ""
username = self.bjk1.GetValue() # 获取输入的用户名
password = self.bjk2.GetValue() # 获取输入的密码
if username == "" or password == "" : # 判断用户名或密码是否为空
message = '用户名或密码不能为空'
elif username =='admin' and password =='123': # 用户名和密码正确
message = '登录成功'
else:
message = '用户名和密码不匹配' # 用户名或密码错误
wx.MessageBox(message) # 弹出提示框
def an2_anbdj(self,event):
""" 点击取消按钮,执行方法 """
self.bjk1.SetValue("") # 清空输入的用户名
self.bjk2.SetValue("") # 清空输入的密码
class myApp(wx.App):
defOnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
if __name__ == '__main__':
app = myApp()
app.MainLoop()
没看懂啥意思 # -*- coding:utf-8 -*-
import wx
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='用户登录', size=(400, 300),name='frame',style=541072960)
self.qdck = wx.Panel(self)
self.Centre()
self.an1 = wx.Button(self.qdck,size=(89, 32),pos=(90, 155),label='确定',name='button')
self.an1.Bind(wx.EVT_BUTTON,self.an1_anbdj)
self.bq1 = wx.StaticText(self.qdck,size=(195, 22),pos=(85, 16),label='请输入用户名和密码',name='staticText',style=2321)
self.bq2 = wx.StaticText(self.qdck,size=(90, 26),pos=(25, 57),label='用户名:',name='staticText',style=2321)
self.bq3 = wx.StaticText(self.qdck,size=(80, 24),pos=(33, 93),label='密 码:',name='staticText',style=2321)
self.bjk1 = wx.TextCtrl(self.qdck,size=(157, 25),pos=(114, 51),value='',name='text',style=0)
self.bjk2 = wx.TextCtrl(self.qdck,size=(157, 25),pos=(112, 88),value='',name='text',style=0)
self.an2 = wx.Button(self.qdck,size=(89, 32),pos=(186, 154),label='取消',name='button')
self.an2.Bind(wx.EVT_BUTTON,self.an2_anbdj)
def an1_anbdj(self,event):
""" 点击确定按钮,执行方法 """
message = ""
username = self.bjk1.GetValue() #获取输入的用户名
password = self.bjk2.GetValue() #获取输入的密码
if username == "" or password == "" : #判断用户名或密码是否为空
message = '用户名或密码不能为空'
elif username =='admin' and password =='123': #用户名和密码正确
message = '登录成功'
else:
message = '用户名和密码不匹配' #用户名或密码错误
wx.MessageBox(message) #弹出提示框
def an2_anbdj(self,event):
""" 点击取消按钮,执行方法 """
self.bjk1.SetValue("") # 清空输入的用户名
self.bjk2.SetValue("") # 清空输入的密码
class myApp(wx.App):
defOnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
if __name__ == '__main__':
app = myApp()
app.MainLoop()
还是用TAB进行缩进吧,空格的问题 塞北的雪 发表于 2020-11-29 22:57
# -*- coding:utf-8 -*-
import wx
奇怪,我是用的Tab缩进,看上去你的代码与我的一样,你的可以运行,我的就出错
这个缩进看上去也没啥不同啊。
谢谢 本帖最后由 风子是我 于 2020-11-29 23:05 编辑
明白了,原来是注释语句的问题,注释语句的缩进也有要求啊?
受教了,谢谢@塞北的雪 啊,不说注释我还真没想带那里去,受教了{:1_921:} unindent一般都是缩进错了的问题 看看你的源代码 有些代码没有正确对齐空格和制表符混用的。少空格的 自己检查一下! 风子是我 发表于 2020-11-29 23:04
明白了,原来是注释语句的问题,注释语句的缩进也有要求啊?
受教了,谢谢@塞北的雪
注释不要用
"""这里是注释“”“
这种模式。这种的实际上是长字符串的定义,不是严格意义上的注释。python认为这是一条语句,所以才会出错。 学习学习
页:
[1]
2