tkinter中对话框有颜色选择对话框、文件对话框、输入数据对话框和消息对话框等。在这个小案例里使用了颜色对话框,获得颜色修改Label的背景色,使用了文件对话框打开文本文档,显示在Label中,运用数据对话框输入一个整型数显示在Label中。
案例代码如下:
from tkinter import *
from tkinter.colorchooser import *
from tkinter.filedialog import *
from tkinter.simpledialog import *
class Application(Frame):
def __init__(self,master = None):
super().__init__(master)
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
self.btn1 = Button(self.master,text='choose the color')
self.btn1.place(relx = 0.4,rely = 0.1,relwidth = 0.18,relheight= 0.1)
self.btn1.bind("<Button-1>",self.test1)
self.btn2 = Button(self.master,text='choose the file')
self.btn2.place(relx = 0.2,rely = 0.1,relwidth = 0.15,relheight= 0.1)
self.btn2.bind("<Button-1>",self.testOpen)
self.show = Label(self.master,width = 100,height = 20,bg ="white")
self.show.place(relx = 0.2,rely = 0.3,relwidth = 0.6,relheight = 0.5)
self.btn3 = Button(self.master,text='ask for Interger')
self.btn3.place(relx = 0.6,rely = 0.1,relwidth = 0.2,relheight= 0.1)
self.btn3.bind("<Button-1>",self.testAskInt)
def test1(self,event):
#打开一个颜色选择对话框
acol = askcolor(color='blue',title='color choose tools')
print(acol)
self.show["bg"] = acol[1]
def testOpen(self,event):
#打开一个文件选择对话框
with askopenfile(title = "up file",initialdir="d:",filetypes=[("textFile",".txt")]) as f:
self.show["text"] = f.read()
def testAskInt(self,event):
#打开一个请求输入整型数据对话框。
num = askinteger(title = "input age",prompt = "Please input a number for age",initialvalue = 18,minvalue = 1,maxvalue = 130)
self.show["text"] = num
if __name__ == "__main__":
root = Tk()
root.geometry("630x300+200+300")
app = Application(master = root)
root.mainloop()
运行效果截图如下: