• PythonGUI:Tkinter学习笔记03


    Tkinter note 03

    介绍以下几个控件的用法:

    • Label
    • Frame
    • Entry
    • Text
    • Button
    • Listbox
    • Scrollbar

    文章目录:


    说明:每个控件最后要加上pack()否则控件是无法显示的

    1、Label

    说明:标签
    用法:Label(根对象,【属性列表】)
    属性:
    text 要显示的文本
    bg 背景颜色
    bd 外围3D边界的宽度
    font 字体(颜色、大小)
    width 控件宽度
    height 控件高度
    实例:(在Python2中运行,在Python3需要把Tkinter都改成tkinter)

    #-*- 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可变,默认为True
    l = Label(root, text="label", bg="pink", font=("Arial",12), width=8, height=3)
    l.pack(side=LEFT)   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
    root.mainloop() # 进入消息循环
    

    img

    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可变,默认为True
    Label(root, text="frame", bg="red", font=("Arial",15)).pack()
    frm = Frame(root)
    #left
    frm_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)
    #right
    frm_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  BOTTOM
    root.mainloop() # 进入消息循环
    

    运行结果:

    img

    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可变,默认为True
    var = Variable()
    e = Entry(root, textvariable=var)
    var.set("entry") # 设置文本框中的值
    e.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
    root.mainloop() # 进入消息循环
    

    img

    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可变,默认为True
    t = Text(root)
    t.insert('1.0',"text1
    ")   # 插入
    t.insert(END,"text2
    ") # END:这个Textbuffer的最后一个字符
    t.insert('1.0',"text3
    ")
    #t.delete('1.0','2.0')   # 删除
    t.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
    root.mainloop() # 进入消息循环
    

    img

    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
    ")
    t = Text()
    t.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
    Button(root, text="press", command=printhello).pack()
    root.mainloop() # 进入消息循环
    

    img

    6.Listbox

    说明:列表控件,可以含有一个或者多个文本框,可单选也可多选
    用法:
    创建 lb = ListBox(根对象,【属性列表】)
    绑定变量 var = StringVar() lb=ListBox(根对象,listvariable=var)
    得到列表中的所有值 var.get()
    设置列表中的所有值 var.set((item1,item2,…))
    添加:lb.insert(item)
    删除:lb.delete(item,…)
    绑定事件 lb.bind(’<ButtonRelease-1>’,函数)
    获得所选中的选项 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('<ButtonRelease-1>',print_item)
    lb.pack()
    root.mainloop()
    

    img

    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('<ButtonRelease-1>',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的yview
    root.mainloop()
    

    =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的yview
    root.mainloop()

    
    ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvODgzNTMyLzIwMTYwNC84ODM1MzItMjAxNjA0MDcxODAzNTQyNTAtMzA0MDkxOTY5LmpwZw?x-oss-process=image/format,png)
    
  • 相关阅读:
    Rotation issue in XCode 4.5 and iOS 6.0
    Core Data on iOS 5 Tutorial: How To Work with Relations and Predicates
    How To Synchronize Core Data with a Web Service – Part 2
    Unit Testing in Xcode 4 – use OCUnit and SenTest instead of GHUnit
    Migrate old project to ARC
    Core Data on iOS 5 Tutorial: Getting Started
    How To Draw Graphs with Core Plot, Part 2
    How To Use NSOperations and NSOperationQueues
    How To Save Your App Data With NSCoding and NSFileManager
    What's New in iOS
  • 原文地址:https://www.cnblogs.com/coding365/p/12872224.html
Copyright © 2020-2023  润新知