分享

GUI编程:打开文件对话框、保存文件对话框、颜色选择对话框的使用

 青竹奏乐 2018-04-28
  1. import tkinter as tk      #导入tkinter模块  
  2. import tkinter.scrolledtext as tst  
  3. class Application(tk.Frame):   #定义GUI类,派生于Frame类  
  4.     def __init__(self,master=None):      
  5.         tk.Frame.__init__(self,master)    #调用父类的构造函数  
  6.         self.grid()    #调用组件的pack方法,调整其显示位置和大小  
  7.         self.createWidgets()   #对象方法声明  
  8.     def createWidgets(self):    #对象方法定义  
  9.         #text文本框  
  10.         self.textEdit=tst.ScrolledText(self,width=80,height=20)   #创建text组件  
  11.         self.textEdit.grid(row=0,column=0,rowspan=6)  
  12.         #打开按钮  
  13.         self.btnOpen=tk.Button(self,text="打开",command=self.funcOpen)  #创建打开按钮  
  14.         self.btnOpen.grid(row=1,column=1)  
  15.         #保存按钮  
  16.         self.btnSave=tk.Button(self,text="保存",command=self.funcSave)  #创建保存按钮  
  17.         self.btnSave.grid(row=2,column=1)  
  18.         #颜色按钮  
  19.         self.btnColor=tk.Button(self,text="颜色",command=self.funcColor)  #创建颜色选择按钮  
  20.         self.btnColor.grid(row=3,column=1)  
  21.         #退出按钮  
  22.         self.btnQuit=tk.Button(self,text="退出",command=self.funcQuit)  #创建退出按钮  
  23.         self.btnQuit.grid(row=4,column=1)  
  24.   
  25.     def funcOpen(self):   #定义事件处理函数,打开文件  
  26.         self.textEdit.delete(1.0,tk.END)    #清空text组件内的内容  
  27.         fname=tk.filedialog.askopenfilename(filetypes=[("Python源文件",".py")])  
  28.         with open(fname,'r',encoding="utf-8") as f1:   #打开文件  
  29.             str1=f1.read()  #读入文件内容到str1中  
  30.         self.textEdit.insert(0.0,str1)    #插入内容到text文本框中  
  31.     def funcSave(self):   #定义事件处理函数,保存文件  
  32.         str1=self.textEdit.get(1.0,tk.END)  
  33.         fname=tk.filedialog.asksaveasfilename(filetypes=[("Python源文件",".py")])  
  34.         with open(fname,'w',encoding="utf-8") as f1:  #打开文件  
  35.             f1.write(str1)  
  36.   
  37.     def funcColor(self):   #定义事件处理函数,设置颜色  
  38.         t,c=tk.colorchooser.askcolor(title="设置颜色")  
  39.         self.textEdit.config(bg=c)  
  40.     def funcQuit(self):   #定义事件处理函数,退出程序  
  41.         root.destroy()  
  42. root=tk.Tk()   #创建一个Tk跟窗口组件root  
  43. root.title("简单文本编辑器")  
  44. app=Application(master=root)   #创建Application的对象实例  
  45. app.mainloop()   #调用组件mainloop方法,进入事件循环  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约