博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python GUI学习——Tkinter
阅读量:7069 次
发布时间:2019-06-28

本文共 5132 字,大约阅读时间需要 17 分钟。

支持python的常见GUI工具包:          使用Tk平台 很容易得到 半标准                               基于wxWindows。跨平台越来越流行                          只能在Windows上使用 使用了本机的Windows GUI功能          只能用于Jython 使用本机的Java GUI                             使用GTK平台 在linux上很流行                                    使用QT平台 跨平台

 

Tkinter学习

介绍以下几个控件的用法     Label     Frame     Entry     Text     Button     Listbox     Scrollbar 说明每个控件最后要加上pack().否则控件是无法显示的 1.Label 说明:标签 用法:Label(根对象,【属性列表】) 属性: text    要显示的文本 bg      背景颜色 bd      外围3D边界的宽度 font    字体(颜色、大小) width   控件宽度 height  控件高度 实例:
#-*- coding: UTF-8 -*-__author__ = '007'__date__ = '2016/4/7'from Tkinter import *root = Tk() # 初始化Tk()root.title("label-test")    # 设置窗口标题root.geometry("200x300")    # 设置窗口大小 注意:是x 不是*root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为Truel = Label(root, text="label", bg="pink", font=("Arial",12), width=8, height=3)l.pack(side=LEFT)   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOMroot.mainloop() # 进入消息循环

运行结果:

2.Frame 说明:在屏幕上创建一块矩形区域,多作为容器来布局窗体 用法:frame(根对象,【属性列表】) 实例:
#-*- coding: UTF-8 -*-__author__ = '007'__date__ = '2016/4/7'from Tkinter import *root = Tk() # 初始化Tk()root.title("frame-test")    # 设置窗口标题root.geometry("300x200")    # 设置窗口大小 注意:是x 不是*root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为TrueLabel(root, text="frame", bg="red", font=("Arial",15)).pack()frm = Frame(root)#leftfrm_L = Frame(frm)Label(frm_L, text="左上", bg="pink", font=("Arial",12)).pack(side=TOP)Label(frm_L, text="左下", bg="green", font=("Arial",12)).pack(side=TOP)frm_L.pack(side=LEFT)#rightfrm_R = Frame(frm)Label(frm_R, text="右上", bg="yellow", font=("Arial",12)).pack(side=TOP)Label(frm_R, text="右下", bg="purple", font=("Arial",12)).pack(side=TOP)frm_R.pack(side=RIGHT)frm.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOMroot.mainloop() # 进入消息循环

运行结果:

3.Entry 说明:创建单行文本框 用法:创建 Entry(根对象,【属性列表】)      绑定变量 var=StringVar()    e=Entry(根对象, textvariable = var)     获取文本框中的值   var.get()     设置文本框中的值   var.set(item1) 实例:
#-*- coding: UTF-8 -*-__author__ = '007'__date__ = '2016/4/7'from Tkinter import *root = Tk() # 初始化Tk()root.title("entry-test")    # 设置窗口标题root.geometry("300x200")    # 设置窗口大小 注意:是x 不是*root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为Truevar = Variable()e = Entry(root, textvariable=var)var.set("entry") # 设置文本框中的值e.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOMroot.mainloop() # 进入消息循环

运行结果:

4.Text 说明:向该空间内输入文本 用法: t = Text(根对象) 插入:t.insert(mark,内容) 删除:t.delete(mark1,mark2) 其中,mark可以是行号,或者特殊标识,例如  INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置  END:这个Textbuffer的最后一个字符  SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常  SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发异常 实例:
#-*- coding: UTF-8 -*-__author__ = '007'__date__ = '2016/4/7'from Tkinter import *root = Tk() # 初始化Tk()root.title("text-test")    # 设置窗口标题root.geometry("300x200")    # 设置窗口大小 注意:是x 不是*root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为Truet = Text(root)t.insert('1.0',"text1\n")   # 插入t.insert(END,"text2\n") # END:这个Textbuffer的最后一个字符t.insert('1.0',"text3\n")#t.delete('1.0','2.0')   # 删除t.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOMroot.mainloop() # 进入消息循环

运行结果:

5.Button 说明:创建按钮 用法:Button(根对象,【属性列表】) 实例:
#-*- coding: UTF-8 -*-__author__ = '007'__date__ = '2016/4/7'from Tkinter import *root = Tk() # 初始化Tk()root.title("button-test")    # 设置窗口标题root.geometry()    # 设置窗口大小 注意:是x 不是*def printhello():    t.insert(END,"hello\n")t = Text()t.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOMButton(root, text="press", command=printhello).pack()root.mainloop() # 进入消息循环

运行结果:

6.Listbox 说明:列表控件,可以含有一个或者多个文本框,可单选也可多选 用法: 创建  lb = ListBox(根对象,【属性列表】) 绑定变量 var = StringVar() lb=ListBox(根对象,listvariable=var) 得到列表中的所有值 var.get() 设置列表中的所有值 var.set((item1,item2,......)) 添加:lb.insert(item) 删除:lb.delete(item,...) 绑定事件 lb.bind('
',函数) 获得所选中的选项 lb.get(lb.curselection()) 属性:selectmode可以为BROWSE MULTIPL SINGLE 实例:
#-*- coding: UTF-8 -*-__author__ = '007'__date__ = '2016/4/7'from Tkinter import *root = Tk()root.title("listbox-test")root.geometry()def print_item(event):    print lb.get(lb.curselection())var = StringVar()lb = Listbox(root, listvariable = var)list_item = [1,2,3,4]for item in list_item:    lb.insert(END,item)lb.delete(2,4)var.set(('a','b','c','d'))print var.get()lb.bind('
',print_item)lb.pack()root.mainloop()

运行结果:

7.Scrollbar 说明:垂直滚动控件 用法:ListBox(根对象,【属性列表】 实例:
#-*- coding: UTF-8 -*-__author__ = '007'__date__ = '2016/4/7'from Tkinter import *root = Tk() # 初始化Tk()root.title("scrl-test")    # 设置窗口标题root.geometry()    # 设置窗口大小 注意:是x 不是*def print_item(event):    print lb.get(lb.curselection())var = StringVar()lb = Listbox(root, height=5, selectmode=BROWSE, listvariable = var)lb.bind('
',print_item)list_item = [1,2,3,4,5,6,7,8,9,0]for item in list_item: lb.insert(END,item)scrl = Scrollbar(root)scrl.pack(side=RIGHT,fill=Y)lb.configure(yscrollcommand=scrl.set) # 指定Listbox的yscrollbar的回调函数为Scrollbar的set,表示滚动条在窗口变化时实时更新lb.pack(side=LEFT,fill=BOTH)scrl['command'] = lb.yview # 指定Scrollbar的command的回调函数是Listbar的yviewroot.mainloop()

运行结果:

 

转载于:https://www.cnblogs.com/andr01la/p/5364760.html

你可能感兴趣的文章
linux的启动流程--
查看>>
centos镜像liveCD,liveDVD和DVD区别
查看>>
javascript variable's scope , 变量 范围
查看>>
selenium 远程连接超时
查看>>
android图片处理
查看>>
CentOS7中firewall防火墙详解和配置,.xml服务配置详解
查看>>
电子表格控件Spreadsheet 对象方法事件详细介绍
查看>>
自动填写短信验证码
查看>>
linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(安装依赖包)
查看>>
运维自动化工具Cobbler之—标准化
查看>>
编译linux-3.15.5时遇到的几个错误
查看>>
nginx启动,重启,关闭命令
查看>>
redhat5.8+pam+mysql+vsftp(提供软件包可以到 百度云盘下载 账号 pankuo1@sina.cn 密码pk492940446)...
查看>>
支持Flash转换可打印的PDF文件的PDF转换控件ActivePDF WebGrabber
查看>>
JavaScript的一些概念: typeof, null, 和 undefined
查看>>
PL/SQL连接64位Oracle数据库
查看>>
关于Dr.Com3.73多人上网的破解(一)
查看>>
关于ChainCore开源区块链的Signer数量,Quroum配置
查看>>
mysqldump 备份数据库
查看>>
开启Pix ASA 5520 snmp协议
查看>>