精华内容
下载资源
问答
  • Tkinter 组件详解(一):Label

    万次阅读 多人点赞 2018-12-18 21:35:06
    Tkinter 组件详解之Label Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。 何时使用...

    Tkinter 组件详解之Label

    Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。

    何时使用 Label 组件?

    Label 组件用于显示文本和图像,并且使用双缓冲,这样你就可以随时更新内容,没有恼人的闪烁。

    如果希望显示的数据用户可以进行操作,使用 Canvas 组件或许更为合适。

    用法

    使用 Label 组件,你可以指定想要显示的内容(可以是文本、位图或者图片):

    import tkinter as tk
    
    master = tk.Tk()
    
    w = tk.Label(master, text="你好,来自江南的你!")
    w.pack()
    
    master.mainloop()

    如果你没有指定 Label 的大小,那么 Label 的尺寸是正好可以容纳其内容而已,如下:

    当然你可以通过 height 和 width 选项来明确设置 Label 的大小:如果你显示的是文本,那么这两个选项是以文本单元为单位定义 Label 的大小;如果你显示的是位图或者图像,那么它们以像素为单位(或者其他屏幕单元)定义 Label 大小。

    你可以通过 foreground(或 fg)和 background(或 bg)选项来设置 Label 的前景色和背景色。你也可以选择 Label 中的文本用哪种字体来显示。指定颜色和字体时需谨慎,除非你有一个很好的理由,否则建议使用默认值(主要是考虑到不同平台的兼容性)。

    w = tk.Label(master, text="你好,来自江南的你", font=("华文行楷", 20), fg="green")

    注:你还可以使用 #RRGGBB 的格式指定具体的颜色值,例如 "#%02x%02x%02x" % (123, 188, 233)

    Label 可以显示多行文本,你可以直接使用换行符或使用 wraplength 选项来实现。当文本换行的时候,你可以使用 anchor 和 justify 选项来使得文本如你所希望的显示出来:

    longtext = """
    Label 可以显示多行文本,你可以直接使用换行符
    或使用 wraplength 选项来实现。当文本换行的时
    候,你可以使用 anchor 和 justify 选项来使得
    文本如你所希望的显示出来。
    """
    w = tk.Label(master, text=longtext, anchor="w", justify="left")

    Label 可以显示 Tkinter 变量的内容。言下之意就是当变量的内容发生改变时,Label 中显示的内容也会自动更新:

    v = tk.StringVar()
    w = tk.Label(master, textvariable=v)
    v.set("~新的文本~")
    w.pack()

    你可以使用 Label 显示 PhotoImage 和 BitmapImage 对象。当你这么做的时候,请务必保留一份图片对象的引用,以防止被 Python 的垃圾回收机制回收。你可以使用一个全局变量,或一个实例的属性,或者再简单点,在实例上添加一个属性即可:

    photo = tk.PhotoImage(file="python.gif")
    w = tk.Label(master, image=photo)
    w.pack()

    参数

    Label(master=None, **options) (class)

    master -- 父组件

    **options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:
     

    选项含义
    activebackground1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的背景色
    2. 默认值由系统指定
    activeforeground1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的前景色
    2. 默认值由系统指定
    anchor1. 控制文本(或图像)在 Label 中显示的位置
    2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 来定位(ewsn 代表东西南北,上北下南左西右东)
    3. 默认值是 "center"
    background1. 设置背景颜色
    2. 默认值由系统指定
    bg跟 background 一样
    bitmap1. 指定显示到 Label 上的位图
    2. 如果指定了 image 选项,则该选项被忽略
    borderwidth1. 指定 Label 的边框宽度
    2. 默认值由系统指定,通常是 1 或 2 像素
    bd跟 borderwidth 一样
    compound1. 控制 Label 中文本和图像的混合模式
    2. 默认情况下,如果有指定位图或图片,则不显示文本
    3. 如果该选项设置为 "center",文本显示在图像上(文本重叠图像)
    4. 如果该选项设置为 "bottom","left","right" 或 "top",那么图像显示在文本的旁边(如 "bottom",则图像在文本的下方)
    5. 默认值是 NONE
    cursor1. 指定当鼠标在 Label 上飘过的时候的鼠标样式
    2. 默认值由系统指定
    disabledforeground1. 指定当 Label 不可用的时候前景色的颜色
    2. 默认值由系统指定
    font1. 指定 Label 中文本的字体(注:如果同时设置字体和大小,应该用元组包起来,如("楷体", 20)
    2. 一个 Label 只能设置一种字体
    3. 默认值由系统指定
    foreground1. 设置 Label 的文本和位图的颜色
    2. 默认值由系统指定
    fg跟 foreground 一样
    height1. 设置 Label 的高度
    2. 如果 Label 显示的是文本,那么单位是文本单元
    3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元)
    4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出高度
    highlightbackground1. 指定当 Label 没有获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定,通常是标准背景颜色
    highlightcolor1. 指定当 Label 获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定
    highlightthickness1. 指定高亮边框的宽度
    2. 默认值是 0(不带高亮边框)
    image1. 指定 Label 显示的图片
    2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象
    3. 该选项优先于 text 和 bitmap 选项
    justify1. 定义如何对齐多行文本
    2. 使用 "left","right" 或 "center"
    3. 注意,文本的位置取决于 anchor 选项
    4. 默认值是 "center"
    padx1. 指定 Label 水平方向上的额外间距(内容和边框间)
    2. 单位是像素
    pady1. 指定 Label 垂直方向上的额外间距(内容和边框间)
    2. 单位是像素
    relief1. 指定边框样式
    2. 默认值是 "flat"
    3. 另外你还可以设置 "groove", "raised", "ridge", "solid" 或者 "sunken"
    state1. 指定 Label 的状态
    2. 这个标签控制 Label 如何显示
    3. 默认值是 "normal
    4. 另外你还可以设置 "active" 或 "disabled"
    takefocus1. 如果是 True,该 Label 接受输入焦点
    2. 默认值是 False
    text1. 指定 Label 显示的文本
    2. 文本可以包含换行符
    3. 如果设置了 bitmap 或 image 选项,该选项则被忽略
    textvariable1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容
    2. 如果变量被修改,Label 的文本会自动更新
    underline1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 
    2. 默认值是 -1
    3. 例如设置为 1,则说明在 Button 的第 2 个字符处画下划线
    width1. 设置 Label 的宽度
    2. 如果 Label 显示的是文本,那么单位是文本单元
    3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元)
    4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出宽度
    wraplength1. 决定 Label 的文本应该被分成多少行
    2. 该选项指定每行的长度,单位是屏幕单元
    3. 默认值是 0

     

    展开全文
  • TKinter 组件详解

    2021-09-13 13:54:03
    Entry、Text :delete/insert Entry.set Entry.get() ...2、stringvar():StringVar并不是python内建的对象,而是属于Tkinter下的对象。 https://blog.csdn.net/qq_41556318/category_928...

    Entry、Text :delete/insert    

    Entry.set   Entry.get()

    label1['text']

    Tkinter.END

    config

    textvariable

    intvar() stringvar()

    1、intvar():属于Tkinter下的对象。用于处理整型。

    2、stringvar():StringVar并不是python内建的对象,而是属于Tkinter下的对象。

    https://blog.csdn.net/qq_41556318/category_9283243.html

     Tkinter 组件详解(一):Label

    Label 可以显示 Tkinter 变量的内容。言下之意就是当变量的内容发生改变时,Label 中显示的内容也会自动更新:

    1. v = tk.StringVar()

    2. w = tk.Label(master, textvariable=v)

    3. v.set("~新的文本~")

    4. w.pack()

     

    展开全文
  • Tkinter 组件详解(七):Entry

    万次阅读 多人点赞 2018-12-20 13:57:40
    Tkinter 组件详解之Entry Entry(输入框)组件通常用于获取用户的输入文本。 何时使用 Entry 组件? Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示空间更长,那内容将被滚动。这...

    Tkinter 组件详解之Entry

    Entry(输入框)组件通常用于获取用户的输入文本。

    何时使用 Entry 组件?

    Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示空间更长,那内容将被滚动。这意味着该字符串将不能被全部看到(你可以用鼠标或键盘的方向键调整文本的可见范围)。

    如果你希望接收多行文本的输入,可以使用 Text 组件(后面介绍)

    用法

    使用代码为 Entry 组件添加文本,可以使用 insert() 方法。如果要替换当前文本,可以先使用 delete() 方法,再使用 insert() 方法实现:

    import tkinter as tk
    
    master = tk.Tk()
    
    e = tk.Entry(master)
    e.pack(padx=20, pady=20)
    
    e.delete(0, "end")
    e.insert(0, "默认文本...")
    
    master.mainloop()
    

    获取当前输入框的文本,可以使用 get() 方法:

    s = e.get()

    你也可以绑定 Entry 组件到 Tkinter 变量(StringVar),并通过该变量设置和获取输入框的文本:

    v = tk.StringVar()
    e = tk.Entry(master, textvariable=v)
    e.pack()
    
    v.set("I love Python!")
    s = v.get()

    下边的例子演示将 Entry 组件和 Button 组件配合,点击 “获取信息” 按钮时自动清空输入框并将内容输出:

    import tkinter as tk
    
    master = tk.Tk()
    
    tk.Label(master, text="作品:").grid(row=0)
    tk.Label(master, text="作者:").grid(row=1)
    
    e1 = tk.Entry(master)
    e2 = tk.Entry(master)
    e1.grid(row=0, column=1, padx=10, pady=5)
    e2.grid(row=1, column=1, padx=10, pady=5)
    
    def show():
        print("作品:《%s》" % e1.get())
        print("作者:%s" % e2.get())
        e1.delete(0, "end")
        e2.delete(0, "end")
    
    tk.Button(master, text="获取信息", width=10, command=show).grid(row=3, column=0, sticky="w", padx=10, pady=5)
    tk.Button(master, text="退出", width=10, command=master.quit).grid(row=3, column=1, sticky="e", padx=10, pady=5)
    
    master.mainloop()

    最后需要提到的是 Entry 组件允许通过以下几种方式指定字符的位置:

    • 数字索引号
    • "anchoe"
    • "end"
    • "insert"
    • 鼠标坐标("@x")

    数字索引号:常规的 Python 索引号,从 0 开始

    "anchor":对应第一个被选中的字符(如果有的话)

    "end":对应已存在文本的后一个位置

    "insert":对应插入光标的当前位置

    鼠标坐标("@x"):x 是鼠标位置与 Entry 左侧边缘的水平距离,这样就可以通过鼠标相对地定位字符的位置

    参数

    Entry(master=None, **options) (class)

    master -- 父组件

    **options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:

    选项含义
    background1. 设置 Entry 的背景颜色
    2. 默认值由系统指定
    bg跟 background 一样
    borderwidth1. 设置 Entry 的边框宽度
    2. 默认值是 1 或 2 像素
    bd跟 borderwidth 一样
    cursor1. 指定当鼠标在 Entry 上飘过的时候的鼠标样式
    2. 默认值由系统指定
    exportselection1. 指定选中的文本是否可以被复制到剪贴板
    2. 默认值是 True
    3. 可以修改为 False 表示不允许复制文本
    font1. 指定 Entry 中文本的字体
    2. 默认值由系统指定
    foreground1. 设置 Entry 的文本颜色
    2. 默认值由系统指定
    fg跟 foreground 一样
    highlightbackground1. 指定当 Entry 没有获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定
    highlightcolor1. 指定当 Entry 获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定
    highlightthickness1. 指定高亮边框的宽度
    2. 默认值是 1 或 2 像素
    insertbackground指定输入光标的颜色
    insertborderwidth1. 指定输入光标的边框宽度
    2. 如果被设置为非 0 值,光标样式会被设置为 RAISED
    3. 小甲鱼温馨提示:将 insertwidth 设置大一点才能看到效果哦
    insertofftime1. 该选项控制光标的闪烁频率(灭)
    2. 单位是毫秒
    insertontime1. 该选项控制光标的闪烁频率(亮)
    2. 单位是毫秒
    insertwidth1. 指定光标的宽度
    2. 默认值是 1 或 2 像素
    invalidcommand1. 指定当输入框输入的内容“非法”时调用的函数
    2. 也就是指定当 validateCommand 选项指定的函数返回 False 时的函数
    3. 详见本内容最下方小甲鱼关于验证详解
    invcmd跟 invalidcommand 一样
    justify1. 定义如何对齐输入框中的文本
    2. 使用 "left","right" 或 "center"
    3. 默认值是 "left"
    relief1. 指定边框样式
    2. 默认值是 "sunken"
    3. 其他可以选择的值是 "flat","raised","groove" 和 "ridge"
    selectbackground1. 指定输入框的文本被选中时的背景颜色
    2. 默认值由系统指定
    selectborderwidth1. 指定输入框的文本被选中时的边框宽度(选中边框)
    2. 默认值由系统指定
    selectforeground1. 指定输入框的文本被选中时的字体颜色
    2. 默认值由系统指定
    show1. 设置输入框如何显示文本的内容
    2. 如果该值非空,则输入框会显示指定字符串代替真正的内容
    3. 将该选项设置为 "*",则是密码输入框
    state1. Entry 组件可以设置的状态:"normal","disabled" 或 "readonly"(注意,它跟 "disabled" 相似,但它支持选中和拷贝,只是不能修改,而 "disabled" 是完全禁止)
    2. 默认值是 "normal"
    3. 注意,如果此选项设置为 "disabled" 或 "readonly",那么调用 insert() 和 delete() 方法都会被忽略
    takefocus1. 指定使用 Tab 键可以将焦点移动到输入框中
    2. 默认是开启的,可以将该选项设置为 False 避免焦点在此输入框中
    textvariable1. 指定一个与输入框的内容相关联的 Tkinter 变量(通常是 StringVar)
    2. 当输入框的内容发生改变时,该变量的值也会相应发生改变
    validate1. 该选项设置是否启用内容验证 
    2. 详见本内容最下方小甲鱼关于验证详解
    validatecommand1. 该选项指定一个验证函数,用于验证输入框内容是否合法
    2. 验证函数需要返回 True 或 False 表示验证结果
    3. 注意,该选项只有当 validate 的值非 "none" 时才有效
    3. 详见本内容最下方小甲鱼关于验证详解
    vcmd跟 validatecommand 一样
    width1. 设置输入框的宽度,以字符为单位
    2. 默认值是 20
    3. 对于变宽字体来说,组件的实际宽度等于字体的平均宽度乘以 width 选项的值
    xscrollcommand1. 与 scrollbar(滚动条)组件相关联
    2. 如果你觉得用户输入的内容会超过该组件的输入框宽度,那么可以考虑设置该选项
    3. 使用方法可以参考:Scrollbar 组件

    方法

    delete(first, last=None) 

    -- 删除参数 first 到 last 范围内(包含 first 和 last)的所有内容
    -- 如果忽略 last 参数,表示删除 first 参数指定的选项
    -- 使用 delete(0, END) 实现删除输入框的所有内容

    get()

    -- 获得当前输入框的内容

    icursor(index)

    -- 将光标移动到 index 参数指定的位置
    -- 这同时也会设置 INSERT 的值

    index(index) 

    -- 返回与 index 参数相应的选项的序号(例如 e.index(END))

    insert(index, text) 

    -- 将 text 参数的内容插入到 index 参数指定的位置
    -- 使用 insert(INSERT, text) 将 text 参数指定的字符串插入到光标的位置
    -- 使用 insert(END, text) 将 text 参数指定的字符串插入到输入框的末尾

    scan_dragto(x) 

    --  见下方 scan_mark(x)

    scan_mark(x)

    -- 使用这种方式来实现输入框内容的滚动
    -- 需要将鼠标按下事件绑定到 scan_mark(x) 方法(x 是鼠标当前的水平位置),然后再将 <motion> 事件绑定到 scan_dragto(x) 方法(x 是鼠标当前的水平位置),就可以实现输入框在当前位置和 sacn_mack(x) 指定位置之间的水平滚动

    select_adjust(index)
    -- 与 selection_adjust(index) 相同,见下方解释

    select_clear()
    -- 与 selection_clear() 相同,见下方解释

    select_from(index)
    -- 与 selection_from(index) 相同,见下方解释

    select_present()
    -- 与 selection_present() 相同,见下方解释

    select_range(start, end)
    -- 与 selection_range(start, end) 相同,见下方解释

    select_to(index)
    -- 与 selection_to(index) 相同,见下方解释

    selection_adjust(index)
    -- 该方法是为了确保输入框中选中的范围包含 index 参数所指定的字符
    -- 如果选中的范围已经包含了该字符,那么什么事情也不会发生
    -- 如果选中的范围不包含该字符,那么会从光标的位置将选中的范围扩展至该字符

    selection_clear()
    -- 取消选中状态

    selection_from(index)
    -- 开始一个新的选中范围
    -- 会设置 ANCHOR 的值

    selection_present()
    -- 返回输入框是否有处于选中状态的文本
    -- 如果有则返回 True,否则返回 False

    selection_range(start, end)
    -- 设置选中范围
    -- start 参数必须必 end 参数小
    -- 使用 selection_range(0, END) 选中整个输入框的所有内容

    selection_to(index)
    -- 选中 ANCHOR 到 index 参数的间的所有内容

    xview(index)
    -- 该方法用于确保给定的 index 参数所指定的字符可见
    -- 如有必要,会滚动输入框的内容

    xview_moveto(fraction)
    -- 根据 fraction 参数给定的比率调整输入框内容的可见范围
    -- fraction 参数的范围是 0.0 ~ 1.0,0.0 表示输入框的开始位置,1.0 表示输入框的结束位置

    xview_scroll(number, what)
    -- 根据给定的参数水平滚动输入框的可见范围
    -- number 参数指定滚动的数量,如果是负数则表示反向滚动
    -- what 参数指定滚动的单位,可以是 UNITS 或 PAGES(UNITS 表示一个字符单元,PAGES 表示一页)

    关于验证详解

    由于查看了不少资料,很多在这里都没有解释清楚,所以这里单独列出来详细讲解下。

    Entry 组件是支持验证输入内容的合法性的,比如要求输入数字,你输入了字母那就是非法。实现该功能,需要通过设置 validate、validatecommand 和 invalidcommand 选项。

     

    首先启用验证的“开关”是 validate 选项,该选项可以设置的值有:

    含义
    'focus'当 Entry 组件获得或失去焦点的时候验证
    'focusin'当 Entry 组件获得焦点的时候验证
    'focusout'当 Entry 组件失去焦点的时候验证
    'key'当输入框被编辑的时候验证
    'all'当出现上边任何一种情况的时候验证
    'none'1. 关闭验证功能
    2. 默认设置该选项(即不启用验证)
    3. 注意,是字符串的 'none',而非 None

    其次是为 validatecommand 选项指定一个验证函数,该函数只能返回 True 或 False 表示验证的结果。一般情况下验证函数只需要知道输入框的内容即可,可以通过 Entry 组件的 get() 方法获得该字符串。

    下边的例子中,在第一个输入框输入“CSDN” 并通过 Tab 键或者鼠标将焦点转移到第二个输入框的时候,验证功能被成功触发:

    import tkinter as tk
    
    master = tk.Tk()
    
    def test():
        if e1.get() == "CSDN":
            print("正确!")
            return True
        else:
            print("错误!")
            e1.delete(0, "end")
            return False
    
    v = tk.StringVar()
    
    e1 = tk.Entry(master, textvariable=v, validate="focusout", validatecommand=test)
    e2 = tk.Entry(master)
    e1.pack(padx=10, pady=10)
    e2.pack(padx=10, pady=10)
    
    master.mainloop()

    然后,invalidcommand 选项指定的函数只有在 validatecommand 的返回值为 False 的时候才被调用。

    下边的例子中,在第一个输入框输入“csdn”,并通过 Tab 键将焦点转移到第二个输入框,validatecommand 指定的验证函数被触发并返回 False,接着 invalidcommand 被触发:

    import tkinter as tk
    
    master = tk.Tk()
    
    def test():
        if e1.get() == "CSDN":
            print("正确!")
            return True
        else:
            print("错误!")
            e1.delete(0, "end")
            return False
    
    def test2():
        print("我被调用了......")
        return True
    
    v = tk.StringVar()
    
    e1 = tk.Entry(master, textvariable=v, validate="focusout", validatecommand=test, invalidcommand=test2)
    e2 = tk.Entry(master)
    e1.pack(padx=10, pady=10)
    e2.pack(padx=10, pady=10)
    
    master.mainloop()

    最后,其实 Tkinter 还有隐藏技能,不过需要冷却才能触发,请听我一一道来......

    Tkinter 为验证函数提供一些额外的选项:

    额外选项含义
    '%d'操作代码:0 表示删除操作;1 表示插入操作;2 表示获得、失去焦点或 textvariable 变量的值被修改
    '%i'1. 当用户尝试插入或删除操作的时候,该选线表示插入或删除的位置(索引号)
    2. 如果是由于获得、失去焦点或 textvariable 变量的值被修改而调用验证函数,那么该值是 -1
    '%P'1. 当输入框的值允许改变的时候,该值有效
    2. 该值为输入框的最新文本内容
    '%s'该值为调用验证函数前输入框的文本内容
    '%S'1. 当插入或删除操作触发验证函数的时候,该值有效
    2. 该选项表示文本被插入和删除的内容
    '%v'该组件当前的 validate 选项的值
    '%V'1. 调用验证函数的原因
    2. 该值是 'focusin','focusout','key' 或 'forced'(textvariable 选项指定的变量值被修改)中的一个
    '%W'该组件的名字

    为了使用这些选项,你可以这样写:validatecommand=(f, s1, s2, ...)

    其中,f 就是你“冷却后”的验证函数名,s1、s2、s3 这些是额外的选项,这些选项会作为参数依次传给 f 函数。我们刚刚说了,使用隐藏技能前需要冷却,其实就是调用 register() 方法将验证函数包装起来:

    import tkinter as tk
    
    master = tk.Tk()
    
    v = tk.StringVar()
    
    def test(content, reason, name):
        if content == "CSDN":
            print("正确!")
            print(content, reason, name)
            return True
        else:
            print("错误!")
            print(content, reason, name)
            return False
    
    testCMD = master.register(test)
    e1 = tk.Entry(master, textvariable=v, validate="focusout", validatecommand=(testCMD, '%P', '%v', '%W'))
    e2 = tk.Entry(master)
    e1.pack(padx=10, pady=10)
    e2.pack(padx=10, pady=10)
    
    master.mainloop()

    当我故意输入“CSDN我爱你”的时候,DUANG的一下,是错误的,后来我果断删除了“我爱你”,嘿,又正确了:

     

    展开全文
  • Tkinter 组件详解(五):Frame

    万次阅读 多人点赞 2018-12-20 10:04:03
    Tkinter 组件详解之Frame Frame(框架)组件是在屏幕上的一个矩形区域。Frame 主要是作为其他组件的框架基础,或为其他组件提供间距填充。 何时使用 Frame 组件? Frame 组件主要用于在复杂的布局中将其他组件...

    Tkinter 组件详解之Frame

    Frame(框架)组件是在屏幕上的一个矩形区域。Frame 主要是作为其他组件的框架基础,或为其他组件提供间距填充。

    何时使用 Frame 组件?

    Frame 组件主要用于在复杂的布局中将其他组件分组,也用于填充间距和作为实现高级组件的基类。

    用法

    Frame 组件可以用于装饰界面:

    import tkinter as tk
    
    master = tk.Tk()
    
    tk.Label(text="天王盖地虎").pack()
    
    separator = tk.Frame(height=2, bd=1, relief="sunken")
    separator.pack(fill="x", padx=5, pady=5)
    
    tk.Label(text="小鸡炖蘑菇").pack()
    
    master.mainloop()

     

    参数

    Frame(master=None, **options) (class)

    master -- 父组件

    **options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:

    选项含义
    background1. 设置 Frame 组件的背景颜色
    2. 默认值由系统指定
    3. 为了防止更新,可以将颜色值设置为空字符串
    bg跟 background 一样
    borderwidth1. 指定 Frame 的边框宽度
    2. 默认值是 0
    bd跟 borderwidth 一样
    class_默认值是 Frame
    colormap1. 有些显示器只支持 256 色(有些可能更少),这种显示器通常提供一个颜色映射来指定要使用要使用的 256 种颜色
    2. 该选项允许你指定用于该组件以及其子组件的颜色映射
    3. 默认情况下,Frame 使用与其父组件相同的颜色映射
    4. 使用此选项,你可以使用其他窗口的颜色映射代替(两窗口必须位于同个屏幕并且具有相同的视觉特性)
    5. 你也可以直接使用 "new" 为 Frame 组件分配一个新的颜色映射
    6. 一旦创建 Frame 组件实例,你就无法修改这个选项的值
    container1. 该选项如果为 True,意味着该窗口将被用作容器,一些其它应用程序将被嵌入 
    2. 默认值是 False
    cursor1. 指定当鼠标在 Frame 上飘过的时候的鼠标样式
    2. 默认值由系统指定
    height1. 设置 Frame 的高度
    2. 默认值是 0
    highlightbackground1. 指定当 Frame 没有获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定,通常是标准背景颜色
    highlightcolor1. 指定当 Frame 获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定
    highlightthickness1. 指定高亮边框的宽度
    2. 默认值是 0(不带高亮边框)
    padx水平方向上的边距
    pady垂直方向上的边距
    relief1. 指定边框样式
    2. 默认值是 "flat"
    3. 另外你还可以设置 "sunken","raised","groove" 或 "ridge"
    4. 注意,如果你要设置边框样式,记得设置 borderwidth 或 bd 选项不为 0,才能看到边框
    takefocus1. 指定该组件是否接受输入焦点(用户可以通过 tab 键将焦点转移上来)
    2. 默认值是 False
    visual1. 为新窗口指定视觉信息
    2. 该选项没有默认值
    width1. 设置 Frame 的宽度
    2. 默认值是 0
    展开全文
  • Tkinter 组件详解(八):Listbox

    万次阅读 多人点赞 2018-12-20 14:28:21
    Tkinter 组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表。Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色。根据组件的配置,用户可以从列表中选择一个或多个选项。 何时使用...
  • Tkinter 组件详解(九):Scrollbar

    万次阅读 2018-12-20 14:40:21
    Tkinter 组件详解之Scrollbar Scrollbar(滚动条)组件用于滚动一些组件的可见范围,根据方向可分为垂直滚动条和水平滚动条。Scrollbar 组件常常被用于实现文本、画布和列表框的滚动。 何时使用 Scrollbar 组件? ...
  • Tkinter 组件详解(二):Button

    万次阅读 多人点赞 2018-12-19 08:16:45
    Tkinter 组件详解之Button 简介 Button(按钮)组件用于实现各种各样的按钮。Button 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行。 ...
  • Tkinter 组件详解(六):LabelFrame

    千次阅读 2018-12-20 10:12:19
    Tkinter 组件详解之LabelFrame LabelFrame 组件是 Frame 组件的变体。默认情况下,LabelFrame 会在其子组件的周围绘制一个边框以及一个标题。 何时使用 LabelFrame 组件? 当你想要将一些相关的组件分为一组的...
  • Tkinter 组件详解(三):Checkbutton

    万次阅读 2018-12-19 21:43:10
    Tkinter 组件详解之Checkbutton Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将...
  • Tkinter 组件详解(四):Radiobutton

    万次阅读 2018-12-19 21:58:33
    Tkinter 组件详解之Radiobutton Radiobutton(单选按钮)组件用于实现多选一的问题。Radiobutton 组件可以包含文本或图像,每一个按钮都可以与一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或...
  • Tkinter 组件详解之Label Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。 ...
  • Tkinter 组件详解(十):Scale

    千次阅读 2018-12-20 15:08:07
    Tkinter 组件详解之Scale Scale(刻度)组件看起来像是一个带数据的 Scrollbar(滚动条)组件,但事实上它们是不同的两个东东。Scale 组件允许用于通过滑动滑块来选择一个范围内的数字。你可以控制该组件的最大值、...
  • Tkinter组件详解(七):Canvas

    千次阅读 2019-12-29 14:32:41
    Tkinter组件详解之Canvas Canvas(画布)组件为 Tkinter 的图形绘制提供了基础。Canvas 是一个高度灵活的组件,你可以用它绘制图形和图表,创建图形编辑器,并实现各种自定义的小部件。 何时使用 Canvas 组件? ...
  • Tkinter组件详解之Listbox Text(文本)组件用于显示和处理多行文本。在 Tkinter 的所有组件中,Text 组件显得异常强大和灵活,适用于多种任务。虽然该组件的主要目的是显示多行文本,但它常常也被用于作为简单的...
  • Tkinter 组件详解之Entry Entry(输入框)组件通常用于获取用户的输入文本。 Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示空间更长,那内容将被滚动。这意味着该字符串将不能被...
  • Tkinter 组件详解(十一):Text

    万次阅读 多人点赞 2018-12-25 16:26:08
    Tkinter 的所有组件中,Text 组件显得异常强大和灵活,适用于多种任务。虽然该组件的主要目的是显示多行文本,但它常常也被用于作为简单的文本编辑器和网页浏览器使用。 何时使用 Text 组件? Text 组件用于...
  • Tkinter组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表。Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色。根据组件的配置,用户可以从列表中选择一个或多个选项。 Listbox...
  • Tkinter 组件详解之Checkbutton Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法...
  • Tkinter 组件详解(十二):Canvas

    万次阅读 多人点赞 2018-12-27 10:20:32
    Canvas(画布)组件Tkinter 的图形绘制提供了基础。Canvas 是一个高度灵活的组件,你可以用它绘制图形和图表,创建图形编辑器,并实现各种自定义的小部件。 何时使用 Canvas 组件? Canvas 是一个通用的组件,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 649
精华内容 259
关键字:

tkinter组件详解