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

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

import tkinter as tk      #导入tkinter模块
import tkinter.scrolledtext as tst
class Application(tk.Frame):   #定义GUI类,派生于Frame类
    def __init__(self,master=None):    
        tk.Frame.__init__(self,master)    #调用父类的构造函数
        self.grid()    #调用组件的pack方法,调整其显示位置和大小
        self.createWidgets()   #对象方法声明
    def createWidgets(self):    #对象方法定义
        #text文本框
        self.textEdit=tst.ScrolledText(self,width=80,height=20)   #创建text组件
        self.textEdit.grid(row=0,column=0,rowspan=6)
        #打开按钮
        self.btnOpen=tk.Button(self,text="打开",command=self.funcOpen)  #创建打开按钮
        self.btnOpen.grid(row=1,column=1)
        #保存按钮
        self.btnSave=tk.Button(self,text="保存",command=self.funcSave)  #创建保存按钮
        self.btnSave.grid(row=2,column=1)
        #颜色按钮
        self.btnColor=tk.Button(self,text="颜色",command=self.funcColor)  #创建颜色选择按钮
        self.btnColor.grid(row=3,column=1)
        #退出按钮
        self.btnQuit=tk.Button(self,text="退出",command=self.funcQuit)  #创建退出按钮
        self.btnQuit.grid(row=4,column=1)

    def funcOpen(self):   #定义事件处理函数,打开文件
        self.textEdit.delete(1.0,tk.END)    #清空text组件内的内容
        fname=tk.filedialog.askopenfilename(filetypes=[("Python源文件",".py")])
        with open(fname,'r',encoding="utf-8") as f1:   #打开文件
            str1=f1.read()  #读入文件内容到str1中
        self.textEdit.insert(0.0,str1)    #插入内容到text文本框中
    def funcSave(self):   #定义事件处理函数,保存文件
        str1=self.textEdit.get(1.0,tk.END)
        fname=tk.filedialog.asksaveasfilename(filetypes=[("Python源文件",".py")])
        with open(fname,'w',encoding="utf-8") as f1:  #打开文件
            f1.write(str1)

    def funcColor(self):   #定义事件处理函数,设置颜色
        t,c=tk.colorchooser.askcolor(title="设置颜色")
        self.textEdit.config(bg=c)
    def funcQuit(self):   #定义事件处理函数,退出程序
        root.destroy()
root=tk.Tk()   #创建一个Tk跟窗口组件root
root.title("简单文本编辑器")
app=Application(master=root)   #创建Application的对象实例
app.mainloop()   #调用组件mainloop方法,进入事件循环

运行结果:


打开文件:



颜色选择对话框:



  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值