python之tkinter之Entry tkinter entry

python之tkinter之Entry

1 创建变量entryContent,类型为StringVar,此类型为tkinter模块定义的。代码中使用value=’初始值’对变量进行了初始化,实际应用中一般不需要初始化。

entryContent = StringVar(value=’初始值’)

2 创建Entry组件,附属于主窗口,同时和变量建立起联系

widgetEntry1 = Entry(master=mainwindow, textvariable=entryContent)

3 Entry属性设置

设置字体和长度

widgetEntry1.config(font=('黑体', 20), width=25)

设置显示模式,如果是密码框的话显示为*,正常不需要设置

widgetEntry1.config(show='*')

设置背景颜色和边框宽

widgetEntry1.config(bg='white', bd=5)

4 布局Entry,本例中将Entry代码写在button代码之前,布局的时候先对Entry进行了布局。其实常规的做法是将画面所有组件创建并设置完成后统一进行布局。anchor的意为处于当前布局的那个方位,包含["nw", "n", "ne", "w", "center", "e", "sw", "s", "se"],默认center。不理解没关系,代码敲一下运行以下就行了

widgetEntry1.pack(anchor='w')

5 对确认按钮widgetButton1的响应函数confirmFunc进行改写,实现按下按钮弹出对话框显示widgetEntry1的内容。

def confirmFunc():
			tkinter.messagebox.showinfo(title='提示', message=entryContent.get())

6 此处entryContent是作为全局变量被调用的,如果我们想通过对函数传参实现呢?例如我们这样写代码:

def confirmFunc(content):
			tkinter.messagebox.showinfo(title='提示', message=content)
# 设置按下之后执行的程序
widgetButton1.config(command=confirmFunc('文本框内容为:'+entryContent.get()))

执行结果如下图,按下对话框的确定后才能正常运行到我们的主画面,这是因为widgetButton1在设置command时先调用了confirmFunc函数。

7 解决方案:使用python的闭包函数功能实现confirmFunc函数的延迟调用。

widgetButton1.config(command=lambda:confirmFunc('文本框内容为:'+entryContent.get()))

类似于:

def confirmFunc(content):
	def inner():
		tkinter.messagebox.showinfo(title='提示', message=content)
	return inner
widgetButton1.config(command=confirmFunc('文本框内容为:'+entryContent.get()))
原文链接:,转发请注明来源!