当前位置:   article > 正文

24-Tkinter 组件-对话框_tkinter输入对话框

tkinter输入对话框

simpledialog输入对话框

引用tkinter.simpledialog包,可弹出输入对话框,用以接收用户的简单输入。

输入对话框常用 askstring()askinteger()askfloat() 三种函数,分别用于接收字符串、整数和浮点数类型的输入。

  • title:窗口标题
  • prompt:提示信息
  • **kw:其他选项
    • initialvalue:初始值
    • minvalue:最小值
    • maxvalue::最大值

**如下面的例子:**单击按钮,弹出输入对话框,接收文本输入显示在窗体的标签上。如下:

# coding = utf-8
# File date: Hi_2021/12/29 19:25
# File_name: 11_simpledialog输入对话框.py
from tkinter import *
from tkinter.messagebox import showinfo
from tkinter.simpledialog import askstring, askfloat, askinteger


class Application(Frame):
    def __init__(self, master=None):
        # 初始化并调用父类初始化
        super().__init__(master)
        self.master = master
        self.pack()

        self.create_widget()

    def create_widget(self):
        """创建组件"""
        b_askstring = Button(self, text="askstring", command=Application.a_askstring)
        b_askfloat = Button(self, text="askfloat", command=Application.a_askinteger)
        b_askinteger = Button(self, text="askinteger", command=Application.a_askfloat)

        # 布局
        b_askstring.grid(row=1, pady=10)
        b_askfloat.grid(row=2, pady=10)
        b_askinteger.grid(row=3, pady=10)

    @staticmethod
    def a_askstring():
        str_ask = askstring(title="字符串输入框对话框", prompt="输入文字", initialvalue="初始值")
        showinfo(title="提示标题", message=f"输入信息为{str_ask}\n输入信息字符类型为{type(str_ask)}")
        print(f"输入信息为{str_ask}\n输入信息字符类型为{type(str_ask)}")

    @staticmethod
    def a_askinteger():
        int_ask = askinteger(title="整数输入对话框", prompt="输入整数", initialvalue=50, minvalue=1, maxvalue=100)
        showinfo(title="提示标题", message=f"输入信息为{int_ask}\n输入信息字符类型为{type(int_ask)}")
        print(f"输入信息为{int_ask}\n输入信息字符类型为{type(int_ask)}")

    @staticmethod
    def a_askfloat():
        float_ask = askfloat(title="小数输入对话框", prompt="输入浮点数", initialvalue="初始值")
        showinfo(title="提示标题", message=f"输入信息为{float_ask}\n输入信息字符类型为{type(float_ask)}")
        print(f"输入信息为{float_ask}\n输入信息字符类型为{type(float_ask)}")


if __name__ == '__main__':
    root = Tk()
    root.geometry("200x200")
    root.title("GUI窗口标题")
    app = Application(master=root)

    root.mainloop()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

filedialog文件选择对话框

引用tkinter.filedialog包,可弹出文件选择对话框,让用户直观地选择一个或一组文件,以供进一步的文件操作

  • asksaveasfilename() 选择以什么文件名保存,返回文件名
  • asksaveasfile() 选择以什么文件保存,创建文件并返回文件流对象
  • askopenfilename() 选择打开什么文件,返回文件名
  • askopenfile() 选择打开什么文件,返回IO流对象
  • askdirectory() 选择目录,返回目录名
  • askopenfilenames() 选择打开多个文件,以元组形式返回多个文件名
  • askopenfiles() 选择打开多个文件,以列表形式返回多个IO流对象

参数:

选项含义
defaultextension默认扩展名,例如: deiautetension=”. ipg”,那么当用户输人一个文件名”FishC”的时候,文件名会 自动添加后缀为”FishC. ipg”。注意:如果用户输人文件名包含后缀,那么该选项不生效
filetypes指定筛选文件类型的下拉菜单选项,该选项的值是由2元组构成的列表。每个2元组由(类型名,后缀)构成,例如,filetypes=[(“PNG”, “. png”), (“JPG”,”.jpg”),(“GIF”,”. gif”)];新建时间可filetypes=[(“word文件”, “.docx”)]即可显示可选格式
initialdir指定打开/保存文件的默认路径。默认路径是当前文件夹
initialfile默认文件名
parent如果不指定该选项,那么对话框默认显示在根窗口上。如果想要将对话框显示在子窗口w上,那么可以设置parent=w
title指定文件对话框的标题栏文本
confirmoverwrite确认覆盖

colorchooser颜色选择对话框

引用tkinter.colorchooser包,可使用 askcolor()函数弹出模式颜色选择对话框,可以个性化地设置颜色属性。

函数的返回形式为包含RGB十进制浮点元组和RGB十六进制字符串的元组类型,可将其转换为字符串类型后,再截取以十六进制数表示的RGB颜色字符串用于为属性赋值。

返回颜色元组示例:((128.5, 255.99609375, 255.99609375), '#80ffff')

tkinter.colorchooser.askcolor()可选参数:

  • parent: 指定该对话框的属主窗口。
  • title:指定该对话框的标题。
  • color:str | bytes 指定该对话框初始选择的颜色。

举例:单击按钮,弹出颜色选择对话框,并将用户所选择的颜色设置为窗体上标签的背景颜色,如下:

# coding = utf-8
# File date: Hi_2021/12/30 16:27
# File_name: 13_colorchooser颜色选择对话框.py
from tkinter import *
import tkinter.colorchooser


def xz():
    color = tkinter.colorchooser.askcolor()
    colorstr = str(color)
    print('打印字符串%s 切掉后=%s' % (colorstr, colorstr[-9:-2]))
    lb.config(text=colorstr[-9:-2], background=colorstr[-9:-2])


root = Tk()
root.geometry("200x200")
lb = Label(root, text='请关注颜色的变化')
lb.pack()
btn = Button(root, text='弹出颜色选择对话框', command=xz)
btn.pack()
root.mainloop()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/447265
推荐阅读
  

闽ICP备14008679号