欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python Tkinter 之Entry控件(Python GUI 系列5)

程序员文章站 2022-04-12 09:47:21
...

Python Tkinter 之Entry控件(Python GUI 系列5) 



1. 序言

    本章介绍Tkinter的Entry控件,本文是Python GUI系列的第5篇文章,整个系统约20篇博客,将全面的介绍Python Tkinter常用控件,最后还将基于Tkinter搭建两个比较完整的小项目。

2. 环境信息

********************************
本系列运行平台:Mac OS 10.13.4
Python 版本:3.6.4
********************************    

3. Entry控件

    Entry 是Tkinter 用来接收字符串等输入的控件. 该控件允许用户输入一行文字. 如果用户输入的文字长度长于Entry 控件的宽度时, 文字会向后滚动. 这种情况下所输入的字符串无法全部显示. 点击箭头符号可以将不可见的文字部分移入可见区域. 如果你想要输入多行文本, 就需要使用Text 控件.

用法:Entry(根对象, [属性列表]),常用的属性有:

属性参数

说明

master

代表了父窗口

bg

设置背景颜色,如bg=‘red’

fg

设置前景颜色

font

设置字体大小,如font=('Helvetica 10 bold')

relief

指定外观装饰边界附近的标签,默认是平的,可以设置的参数;flat、groove、raised、ridge、solid、sunken,如relief=‘groove’

bd

设置Button的边框大小;bd(bordwidth)缺省为1或2个像素

textvariable

设置Button与textvariable属性

以下来看一组实例:

4. 一组实例

实例1:标签+单行文本输入框,grid布局

from Tkinter import*

#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')
 
#标签+单行文本框
Label(myWindow, text="userName").grid(row=0)
Label(myWindow, text="password").grid(row=1)
Entry(myWindow).grid(row=0, column=1)
Entry(myWindow).grid(row=1, column=1)

#进入消息循环
myWindow.mainloop()

运行结果:

Python Tkinter 之Entry控件(Python GUI 系列5)

实例2:Entry控件,设置默认值,获取控件文本

from Tkinter import*

#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')
 
#标签+单行文本框
Label(myWindow, text="userName").grid(row=0)
Label(myWindow, text="password").grid(row=1)
entry1=Entry(myWindow)
entry2=Entry(myWindow)
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)
#为Entry控制设置默认值
entry1.insert(10,'Jack')
entry2.insert(10,'*******')
#获取Entry控件中的文本
print(entry1.get())
print(entry2.get())

#进入消息循环
myWindow.mainloop()

运行结果:

Python Tkinter 之Entry控件(Python GUI 系列5)

实例3:Entry控件绑定回车事件及其响应函数

from Tkinter import*

def printInfo(event):
    #清理entry2
    entry2.delete(0, END)
    #将entry1接收到的文本插入entry2
    entry2.insert(10, entry1.get())
    #清空entry2控件
    entry1.delete(0, END)
    
#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')
 
#标签+单行文本框
Label(myWindow, text="input").grid(row=0)
Label(myWindow, text="output").grid(row=1)

#Entry绑定回车事件
entry1=Entry(myWindow)
entry1.bind("<Return>", printInfo)
entry2=Entry(myWindow)
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)

#进入消息循环
myWindow.mainloop()

运行结果:

Python Tkinter 之Entry控件(Python GUI 系列5)

点击“Return”按钮后

Python Tkinter 之Entry控件(Python GUI 系列5)