# 获取选择的性别 sex = self.stuSex.get() if sex not in ('男', '女'): tkinter.messagebox.showerror(title='很抱歉', message='性别不合法') return解释每一句代码含义
时间: 2024-04-21 22:26:56 浏览: 111
这段代码是一个 tkinter 界面程序中的一段事件处理函数代码。它的作用是:
1. 获取性别选择框中选中的选项,存储到变量 sex 中。
2. 判断 sex 是否属于 ('男', '女') 中的一个,如果不是,则弹出一个错误对话框提示用户性别不合法,并且中断后续操作。
3. 如果 sex 属于 ('男', '女') 中的一个,那么说明用户选择的性别合法,可以进行下一步处理。
其中,self.stuSex.get() 是获取性别选择框中选中的选项的方法,返回选项的字符串值。('男', '女') 是一个元组,表示合法的性别选项。tkinter.messagebox.showerror() 是弹出错误对话框的方法,其中 title 参数为对话框标题,message 参数为对话框内容。return 语句表示中断后续操作。
相关问题
def addstudents(stuid,stuname,stusex,stuaddress,china,math,english): sqlstr="""insert into students(stuid,stuname,stusex,stuaddress,china,math,english) values(?,?,?,?,?,?,?)""" cursor.execute(sqlstr,(stuid,stuname,stusex,stuaddress,china,math,english)) cursor.commit() return stuid,stuname,stusex,stuaddress,china,math,english #添加学生信息的窗口 def windowadd(): window=tkinter.Toplevel() window.title("添加学生信息")#窗口名字 window.geometry("600x500")#窗口大小 #学号的标签和entry sid=tkinter.StringVar() sid.set("") lable1=tkinter.Label(window,text="学 号:",font=(20),width=25) lable1.place(x=40,y=50,anchor='nw') input1=tkinter.Entry(window,show=None,font=(20),textvariable=sid,width=25) input1.place(x=200,y=50,anchor='nw') sname=tkinter.StringVar() sname.set("") lable2=tkinter.Label(window,text="姓 名:",font=(20),width=25) lable2.place(x=40,y=100,anchor='nw') input2=tkinter.Entry(window,show=None,font=(20),textvariable=sname,width=25) input2.place(x=200, y=100, anchor='nw') ssex=tkinter.StringVar() ssex.set("") lable3=tkinter.Label(window,text="性 别:",font=(20),width=25) lable3.place(x=40,y=150,anchor='nw') input3=tkinter.Entry(window,show=None,font=(20),textvariable=ssex,width=25) input3.place(x=200, y=150, anchor='nw') saddress=tkinter.StringVar() saddress.set("") lable4=tkinter.Label(window,text="地 址:",font=(20),width=25) lable4.place(x=40,y=200,anchor='nw') input4=tkinter.Entry(window,show=None,font=(20),textvariable=saddress,width=25) input4.place(x=200, y=200, anchor='nw') schina=tkinter.StringVar() schina.set("") lable5=tkinter.Label(window,text="语 文:",font=(20),width=25) lable5.place(x=40,y=250,anchor='nw') input5=tkinter.Entry(window,show=None,font=(20),textvariable=schina,width=25) input5.place(x=200, y=250, anchor='nw') smath=tkinter.StringVar() smath.set("") lable6=tkinter.Label(window,text="数 学:",font=(20),width=25) lable6.place(x=40,y=300,anchor='nw') input6=tkinter.Entry(window,show=None,font=(20),textvariable=smath,width=25) input6.place(x=200, y=300, anchor='nw') seng=tkinter.StringVar() seng.set("") lable7=tkinter.Label(window,text="英 语:",font=(20),width=25) lable7.place(x=40,y=350,anchor='nw') input7=tkinter.Entry(window,show=None,font=(23),textvariable=seng,width=25) input7.place(x=200, y=350, anchor='nw') b_yes=tkinter.Button(window,text='确认',bg='blue',font=(20),command=lambda:addstudents(sid.get(),sname.get(),ssex.get(),saddress.get(),schina.get(),smath.get(),seng.get())) b_yes.place(x=70,y=420,anchor='nw') b_no=tkinter.Button(window,text="取消",bg='blue',font=(23),command=lambda :window.destroy()) b_no.place(x=400,y=420,anchor='nw') window.mainloop() 为什么会有 File "D:\pythonProject2\main.py", line 119, in <lambda> b_yes=tkinter.Button(window,text='确认',bg='blue',font=(20),command=lambda:addstudents(sid.get(),sname.get(),ssex.get(),saddress.get(),schina.get(),smath. TypeError: 'Button' object is not callable的错误
这个错误通常是因为你的Button对象名字和函数名相同所导致的,即你的Button名字是"addstudents",而你的函数名也是"addstudents"。在你的代码中,当你点击Button时,它会试图调用名为"addstudents"的Button对象,而不是调用你定义的函数。为了解决这个问题,你需要将Button的对象名修改为另一个不同的名字,比如'b_yes',这样就不会与函数名冲突了。
为什么conn为空public List<Bean_01_Student> select (){ List<Bean_01_Student> list=null; Bean_01_Student bean=null; try { conn=DBUtils.getConnection(); String sql="select * from student"; ps=conn.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()) { int stuid=rs.getInt(1); String stuname=rs.getString(2); String stusex=rs.getString(3); int stuage=rs.getInt(4); String sturemark=rs.getString(5); bean=new Bean_01_Student(stuid,stuname,stusex,stuage,sturemark); list.add(bean); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { DBUtils.closeAll(conn, ps, rs); } return list; }
因为在方法中没有对list进行初始化,所以它的值为null。在使用list之前应该先进行初始化,例如将它初始化为一个空的ArrayList:
```
List<Bean_01_Student> list=new ArrayList<>();
```
阅读全文