菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 基础教程
(追記) (追記ここまで)

Python Tkinter 文本框(Entry)

Python GUI编程 Python GUI编程

Python Tkinter 文本框用来让用户输入一行文本字符串。

  • 你如果需要输入多行文本,可以使用 Text 组件。

  • 你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件。

语法

语法格式如下:

w = Entry( master, option, ... )
  • master: 按钮的父容器。

  • options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。

序号 可选项 & 描述
1

bg

输入框背景颜色

2

bd

边框的大小,默认为 2 个像素

3

cursor

光标的形状设定,如arrow, circle, cross, plus 等

4

font

文本字体

5

exportselection

默认情况下,你如果在输入框中选中文本,默认会复制到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。

6

fg

文字颜色。值为颜色或为颜色代码,如:'red','#ff0000'

7

highlightcolor

文本框高亮边框颜色,当文本框获取焦点时显示

8

justify

显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER

9

relief

边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。

10

selectbackground

选中文字的背景颜色

11

selectborderwidth

选中文字的背景边框宽度

12

selectforeground

选中文字的颜色

13

show

指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值设为 show="*"

14

state

默认为 state=NORMAL, 文框状态,分为只读和可写,值为:normal/disabled

15

textvariable

文本框的值,是一个StringVar()对象

16

width

文本框宽度

17

xscrollcommand

设置水平方向滚动条,一般在用户输入的文本框内容宽度大于文本框显示的宽度时使用。

方法

下表为文本框组件常用的方法:

序号 方法 & 描述
1

delete ( first, last=None )

删除文本框里直接位置值

text.delete(10) # 删除索引值为10的值
text.delete(10, 20) # 删除索引值从10到20之前的值
text.delete(0, END) # 删除所有值
2

get()

获取文件框的值

3

icursor ( index )

将光标移动到指定索引位置,只有当文框获取焦点后成立

4

index ( index )

返回指定的索引值

5

insert ( index, s )

向文本框中插入值,index:插入位置,s:插入值

6

select_adjust ( index )

选中指定索引和光标所在位置之前的值

7

select_clear()

清除指定控件中的选择

8

select_from ( index )

设置光标的位置,通过索引值 index 来设置

9

select_present()

如果有选中,返回 true,否则返回 false。

10

select_range ( start, end )

选中指定索引位置的值,start(包含) 为开始位置,end(不包含) 为结束位置start必须比end小

11

select_to ( index )

选中指定索引与光标之间的值

12

xview ( index )

该方法在文本框链接到水平滚动条上很有用。

13

xview_scroll ( number, what )

用于水平滚动文本框。 what 参数可以是 UNITS, 按字符宽度滚动,或者可以是 PAGES, 按文本框组件块滚动。 number 参数,正数为由左到右滚动,负数为由右到左滚动。

实例

实例中点击按钮会显示一个信息:

实例

#!/usr/bin/python# -*- coding: UTF-8 -*-fromTkinterimport * top = Tk()L1 = Label(top, text="网站名")L1.pack(side = LEFT)E1 = Entry(top, bd =5)E1.pack(side = RIGHT)top.mainloop()

测试输出结果如下:

Python GUI编程 Python GUI编程

AI 思考中...

2 篇笔记 写笔记

  1. #0

    如何通过快捷键选择(聚焦)文本框?

    答:bind_all 绑定快捷键,foucus 选择文本框。

    例:
    from tkinter import *
    # Python 2.x 版本使用 Tkinter
    # from Tkinter import *
    root = Tk()
    def eventhandler(event):
     entry.focus()
    entry=Entry(root,bd=4)
    entry.bind_all('<Control-f>', eventhandler ) # 绑定快捷键Ctrl-f
    entry.pack()
    root.mainloop()

    设置快捷键的方法好找,设置选择的方法我在百度上找不到,就去外网查了一下找到了,写出来分享一下。

    具体可以自己去外网搜:how to set focus in tkinter entr box

    RikiFelt 7年前 (2019年05月29日)
  2. #0

    凯凯本凯

    kai***[email protected]

    27

    @RiKiFelt 的笔记:

    def f( x ):
     print( "pressed" )
    element.bind_all( "<Return>", f )

    上面的例子中,不管在什么地方(另开窗口暂未考证)按 Enter,都会触发 f 函数。

    但有时候,我们需要仅在某个元素中时绑定键位,应该怎么做呢?

    当拿到 focus 时绑定,失去 focus 时解绑,太麻烦了。

    这时候,去掉 _all 就行了。

    def f( x ):
     print( "pressed" )
    element.bind( "<Return>", f )

    这样,只有 element 得到 focus 时按 Enter 才会触发 f 函数。

    凯凯本凯

    kai***[email protected]

    4年前 (2022年02月17日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /