Button 按钮
Canvas 画布、用于绘制直线、椭圆、多边形等形状
Checkbutton 复选框
Entry 单行文本框
Frame 框架,可以作为其它组建的容器,常用来对组件进行分组
Label 标签,常用来显示单行文本
Listbox 列表框
Menu 菜单
Message 多行文本标签
Radiobutton 单选按钮,同一组的单选按钮任何时刻都智能有一个处于选中状态
Scrollbar 滚动条
Toplevel 常用来创建新的窗口
1、用户登陆界面
''' 用户登陆界面 ''' import os.path import os import tkinter import tkinter.messagebox #path它获取的不是系统路劲,二是系统盘下的 #可以单独测试一下 print(os.getenv('temp')) path = os.getenv('temp') filename = os.path.join(path,'info.txt') #创建应用程序窗口 root = tkinter.Tk() #定义窗口大小 ''' 设置变量属性的3个方法 1、再属性的()里定义 2、root[] 3、root.config(text='gsad') ''' root['height'] = 300 root['width'] = 500 #再创建标签组件 labelName = tkinter.Label(root,text='User Name:',justify=tkinter.RIGHT,width=180,bg='red') labelName.place(x=10,y=5,width=80,height=20) #创建字符串变量和文本框组件,同时设置关联的变量 #varName 十和entryName绑定的,也就是说,entryName输入值的时候,var就会变 varName = tkinter.StringVar(root,value='') entryName = tkinter.Entry(root,width=80,textvariable=varName) entryName.place(x=100,y=5,width=80,height=20) #创建密码标签 labelPwd = tkinter.Label(root,text='User Pwd',justify=tkinter.RIGHT,anchor='e',width=80) labelPwd.place(x=10,y=30,width=80,height=20) #创建密码文本框 varPwd = tkinter.StringVar(root,value='') entryPwd = tkinter.Entry(root,show='*',width=80,textvariable=varPwd) #show是密码显示框的意思,输入密码隐藏 entryPwd.place(x=100,y=30,width=80,height=20) #尝试自动填写用户名和密码 try: with open(filename) as fp: n,p = fp.read().strip().split(',') varName.set(n) varPwd.set(p) except: print('文件不存在') #Remember me复选框 rememberMe = tkinter.IntVar(root,value=1) #选中时变量值为1,为选中时变量值为0,默认选中 checkRemember = tkinter.Checkbutton(root,text='Remember me?',variable=rememberMe,onvalue=1,offvalue=0) checkRemember.place(x=30,y=70,width=120,height=20) #登陆按钮事件处理函数 def login(): #获取用户名和密码 name = entryName.get() pwd = entryPwd.get() if name =='admin' and pwd == '123456': tkinter.messagebox.showinfo(title='恭喜',message='登陆成功') if rememberMe.get() == 1: #把登陆成功的信息写入临时文件 with open(filename , 'w') as fp: fp.write(','.join((name,pwd))) else: try: os.remove(filename) except: pass else: tkinter.messagebox.showerror('警告',message='用户名或密码错误') #创建按钮组件,同时设置按钮事件处理函数 buttonOk = tkinter.Button(root,text='Login',command=login) buttonOk.place(x=30,y=100,width=50,height=20) #取消按钮的事件处理函数 def cancel(): #清空用户输入的用户名和密码 varName.set('') varPwd.set('') buttonCancel = tkinter.Button(root,text='Cancel',command=cancel) buttonCancel.place(x=90,y=100,width=50,height=20) #启动消息循环 root.mainloop()
2、创建一个包含文本框、单选按钮、复选框、组合框、按钮和列表框等组件的GUI应用程序
运行后输入姓名,并选择班级、年级、性别及其班长信息等,单机Add按钮,就可以把
学生信息添加道列表框中,
''' 创建一个包含文本框、单选按钮、复选框、组合框、按钮和列表框等组件的GUI应用程序 运行后输入姓名,并选择班级、年级、性别及其班长信息等,单机Add按钮,就可以把 学生信息添加道列表框中, 再列表框中选择一项后单机DeleteSelection按钮,可以将其从列表框中删除 没有选中任何项二单机按钮则提示NoSelect ''' import tkinter import tkinter.ttk import tkinter.messagebox root = tkinter.Tk() root.title('学生信息选择框') root['width']=320 root['height']=400 labelName = tkinter.Label(root,text='Name:',justify=tkinter.RIGHT,width=50) labelName.place(x=10,y=5,width=50,height=20) varName = tkinter.StringVar(value='') entryName = tkinter.Entry(root,width=120,textvariable=varName) entryName.place(x=70,y=5,width=120,height=20) labelGrade = tkinter.Label(root,text='Grade:',justify=tkinter.RIGHT,width=50) labelGrade.place(x=10,y=40,width=50,height=20) studentClasses = {'1':['1','2','3','4'],'2':['1','2'],'3':['1','2','3']} comboGrade = tkinter.ttk.Combobox(root,values=tuple(studentClasses.keys()),width=50) comboGrade.place(x=70,y=40,width=50,height=20) def comboChange(event): #获取comboGrade选项框里面的数据 grade = comboGrade.get() if grade: comboClass["values"] = studentClasses.get(grade) else: comboClass.set([]) #绑定事件处理器函数 ''' geicomboGrade绑定了一个事件处理器(如果comboGrade被触发了,会调用comboChange()函数) comboChange会给comboClass这个选项框的value属性,附上值 tkinter.ttk.Combobox()这里面是没有command这个属性的,所以采用事件的方式触发方法 注意,这个方法必须再这个事件的前面:因为代码由上往下执行,这个方法存在才能够被调用 ''' comboGrade.bind('<<ComboboxSelected>>',comboChange) labelClass = tkinter.Label(root,text='Class',justify=tkinter.RIGHT,width=50) labelClass.place(x=130,y=40,width=50,height=20) comboClass = tkinter.ttk.Combobox(root,width=50) comboClass.place(x=190,y=40,width=50,height=20) labelSex = tkinter.Label(root,text='Sex:',justify=tkinter.RIGHT,width=50) labelSex.place(x=10,y=70,width=50,height=20) sex = tkinter.IntVar(value=1) radioMan = tkinter.Radiobutton(root,variable=sex,value=1,text='Man') radioMan.place(x=70,y=70,width=50,height=20) radioWoman = tkinter.Radiobutton(root,variable=sex,value=0,text='Woman') radioWoman.place(x=130,y=70,width=70,height=20) monitor = tkinter.IntVar(value=1) checkMonitor = tkinter.Checkbutton(root,text='Is Monitor?',variable=monitor,onvalue=1,offvalue=0) checkMonitor.place(x=20,y=100,width=100,height=20) def addInformation(): result = 'Name:'+entryName.get() result = result+';Grade:'+comboGrade.get() result = result+';Class:'+comboClass.get() result = result+';Sex:'+('Man' if sex.get() else 'Woman') result = result+';Monitor:'+('Yes' if monitor.get() else 'Wonmen') listboxStudents.insert(0,result) buttonAdd = tkinter.Button(root,text='Add',width=40,command=addInformation) buttonAdd.place(x=130,y=100,width=40,height=20) def deleteSelection(): #返回当前所指定的索引 selection = listboxStudents.curselection() if not selection: tkinter.messagebox.showinfo(title='Information',message='No Select') else: listboxStudents.delete(selection) buttonDelete = tkinter.Button(root,text='DeleteSelection',width=100,command=deleteSelection) buttonDelete.place(x=180,y=100,width=100,height=20) listboxStudents = tkinter.Listbox(root,width=300) listboxStudents.place(x=10,y=130,width=300,height=200) root.mainloop()
标签:20,tkinter,Python,height,width,place,登陆,界面,root From: https://www.cnblogs.com/buchijiuminvhai/p/17019287.html