在上一篇的文章中,我们了解了easygui,并且通过短短三行代码来实现了一个简单的提示框效果。这篇文章咱们再来了解一下easygui中的输入框textbox。
textbox可以用于输入多行的文字,它的函数原型如下:
textbox(msg='',title=' ',text='',codebox=False,callback=None,run=True)
前面两个参数不用多说,在上一篇文章中已经说过了。第三个参数text,是显示在多行文本输入框中的默认值,而codebox,是用于说明是否让输入域转换成codebox的显示方式。它和普通输入域的区别在于,codebox类型的输入域会忠实输出你输入的数据,如果超出输入域的边界也不会换行,它适用于需要严格显示。callback是点击提示窗口上的OK按钮后的回调函数,注意如果指定了callback,则窗口不会自动关闭,需要自己处理窗口的关闭时机。一般可以用两种方式来关闭窗口:第一种,通过传递给callback的表示打开的textbox的TextBox对象,它提供了一个stop()方法可以关闭窗口;第二种方法是使用类似于sys.exit()的方法直接退出程序。可以根据情况选择。另外,TextBox对象中有一个_text属性可以在回调方法中读取使用:
- _text:可以通过它来获取文本域中的输入信息,也可以用来设置callback()函数中返回的TextBox对象中的_text属性,但这个值不会更新到图形界面中。
如果想在回调函数中设置文本域中的输入信息,可以设置callback()中返回的TextBox对象的text属性来实现,注意这里的text是不带下划线开头的,如果带下划线的_text,则只会修改TextBox对象的 _text属性,不会更新TextBox界面:
如果想在回调函数中修改界面上的提示信息msg,则可以通过设置TextBox对象的msg属性来实现:textbox.text = "新的内容"
下面我们来看一下例子来进一步了解textbox的使用。textbox.msg = "新的提示信息"
from easygui import *
def cb(box):
print(box._text)
box.stop()
textbox("请输入您的个人介绍","个人介绍",callback=cb)
下面是它的运行效果:
可以直接通过好学好教少儿编程教学平台的在线Python编辑器运行,如下:
www.cncoding.cn/python/public_132153
和textbox还有一个类似的对话框,叫codebox,它的效果类似于将textbox中的codebox参数设置为True。但codebox不能指定callback,它的函数原型是:
codebox(msg='',title=' ',text='')