赞
踩
在 simpledialog 模块下还有如下便捷的工具函数,通过这些工具函数可以更方便地生成各种输入对话框:
askinteger:生成一个让用户输入整数的对话框。
askfloat:生成一个让用户输入浮点数的对话框。
askstring:生成一个让用户输入字符串的对话框。
上面三个工具函数的前两个参数分别指定对话框的标题和提示信息,后面还可以通过选项来设置对话框的初始值、最大值和最小值。
下面程序示范了 simpledialog 模块下三个工具函数的用法:
from tkinter import * # 导入ttk from tkinter import ttk # 导入simpledialog from tkinter import simpledialog class App: def __init__(self, master): self.master = master self.initWidgets() def initWidgets(self): # 创建3个按钮,并为之绑定事件处理函数 ttk.Button(self.master, text='输入整数对话框', command=self.open_integer # 绑定open_integer方法 ).pack(side=LEFT, ipadx=5, ipady=5, padx= 10) ttk.Button(self.master, text='输入浮点数对话框', command=self.open_float # 绑定open_integer方法 ).pack(side=LEFT, ipadx=5, ipady=5, padx= 10) ttk.Button(self.master, text='输入字符串对话框', command=self.open_string # 绑定open_integer方法 ).pack(side=LEFT, ipadx=5, ipady=5, padx= 10) def open_integer(self): # 调用askinteger函数生成一个让用户输入整数的对话框 print(simpledialog.askinteger("猜糖果", "你猜我手上有几个糖果:", initialvalue=3, minvalue=1, maxvalue=10)) def open_float(self): # 调用askfloat函数生成一个让用户输入浮点数的对话框 print(simpledialog.askfloat("猜体重", "你猜我我体重多少公斤:", initialvalue=27.3, minvalue=10, maxvalue=50)) def open_string(self): # 调用askstring函数生成一个让用户输入字符串的对话框 print(simpledialog.askstring("猜名字", "你猜我叫什么名字:", initialvalue='Charlie')) root = Tk() root.title("输入对话框测试") App(root) root.mainloop()
上面程序中第 23 行代码生成让用户输入整数的对话框;第 27 行代码生成让用户输入浮点数的对话框;第 31 行代码生成让用户输入字符串的对话框。
askinteger()、askfloat 和 askstring 这三个函数会返回用户输入的数据,因此上面三行代码打印了这三个函数的返回值,这样就可以打印出用户输入的内容。
运行该程序,单击界面上的“输入整数对话框”按钮,可以看到如图 1 所示的对话框。
图 1 输入整数的对话框
在图 1 所示的对话框中,用户只能输入整数,而且输入的整数必须在指定范围内;否则,系统会生成错误提示。当用户输入所允许范围内的整数并单击“OK”按钮后,可以看到控制台打印了用户输入的整数。
单击界面上的“输入浮点数对话框” 按钮,可以看到如图 2 所示的对话框。
图 2 输入浮点数的对话框
在图 2 所示的对话框中,用户只能输入浮点数,而且输入的浮点数必须在指定范围内; 否则,系统会生成错误提示。当用户输入所允许范围内的浮点数并单击“OK”按钮后,可以看到控制台打印了用户输入的浮点数。
单击界面上的“输入字符串对话框”按钮,可以看到如图 3 所示的对话框。
图 3 输入字符串的对话框
在图 3 所示的对话框中,用户只能输入字符串。当用户输入合适的字符串并单击“OK”按钮后,可以看到控制台打印了用户输入的字符串
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。