askinteger,askfloat,askstring的使用

2019年8月29日 / 4,194次阅读 / Last Modified 2019年8月30日
tkinter

Python的tkinter模块中,有一个子模块simpledialog.py,这个子模块里有这样三个函数:askinteger,askfloat,askstring。他们通过GUI窗口的方式,让用户输入一个整数,浮点数,或者字符串,并且自带输入合法性检测!使用非常方便。

askinteger

通过对话框,让用户输入一个整数:

>>> import tkinter as tk
>>> from tkinter.simpledialog import askinteger,askfloat,askstring
>>> root = tk.Tk()  # you need a root window to show examples below
>>>
>>> print(askinteger('askinteger','please give me an integer:'))
12345
>>> print(askinteger('askinteger','please give me an integer:'))
None
askinteger
askinteger

第1个参数是对话框的Title,第2个参数是输入条上面的一行信息。本文所介绍的三个ask函数,都是这样的参数风格。

输入整数,点击OK,返回整数,点击Cancel,返回None,直接关闭此对话框,返回None。如果输入非法数据,会有如下窗口弹出:

自带输入合法性检查
自带输入合法性检查

askinteger函数还支持设置初始值,设置可以接收的最大值和最小值,这极大方便了应用的开发。

askinteger('askinteger','please give me an integer:', 
                initialvalue=12345, minvalue=100, maxvalue=20000)

askfloat

这是接收浮点数的对话框:

>>> print(askfloat('askfloat','please give me a float:'))
1.2345
>>> print(askfloat('askfloat','please give me a float:'))
None
askfloat
askfloat

输入小数(浮点数),点击OK,返回小数,点击Cancel,返回None,直接关闭此对话框,返回None。 同样自带输入合法性检查。但是,askfloat可以接收一个整数,返回的是此整数对应的float。

跟askinteger一样,askfloat也支持设置初始值,最大值和最小值。

askstring

接收字符串的对话框,这个对话框可以接受的数据就很广了,输入整数或浮点数,都会被当做字符串返回。

>>> print(askstring('askstring','please give me a string:'))
123
>>> print(askstring('askstring','please give me a string:'))
1.234
>>> print(askstring('askstring','please give me a string:'))
asdfasd
>>> print(askstring('askstring','please give me a string:'))
;;;;;909f
askstring
askstring

那些字符序列不是字符串呢?我还没测出来这个函数的输入合法性检查。Cancel和直接关闭窗口,返回都是None。

askstring也支持设置初始值,最大值和最小值,不过要注意,askstring接收的是字符串,内部比较大小,也是字符串之间比较大小。

以上就是python tkinter模块的askinteger,askfloat,askstring这三个函数的介绍。

-- EOF --

本文链接:https://www.pynote.net/archives/990

留言区

您的电子邮箱地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More

麦新杰的Python笔记

Ctrl+D 收藏本页


©Copyright 麦新杰 Since 2019 Python笔记

go to top